加密解密在 Web 开发中的应用

加密是将明文信息改变为难以读取的密文内容,使之不可读的过程。解密是通过特殊的对象,将密文还原为正常可读的内容的过程。而在这个过程中,我们所使用的方法,就是加密解密算法。

说到加解密算法的时候,不得不提一个重要的概念「对称与非对称」。什么是对称加密算法?什么是非对称加密算法?简单的说,对称加密就是,加密和解密使用的都是同一套密钥;反之,如果加密和解密使用的不是同一个密钥,即为非对称加密算法,也称公开密钥加密,广泛用于信息传输。

看到这里,你可能会说,什么对称不对称,我就想知道一些耳熟能详的,诸如:DES,RSA,MD5,SHA1,Base64 都是什么玩意,有哪些用途,怎么用。

常见加密算法

  • DES(**D**ata Encryption Standard)是最常见的对称密码算法,加密解密使用同一套密钥。密钥较短,加解密处理简单,速度快,适用于加密大量数据的场合,但不适合数据传输,因为存在密钥泄露的风险。
  • RSA(**A**dvanced Encryption Standard)是非对称加密算法的代表,加密使用公开密钥,也称公钥,解密使用私钥。密钥尺寸大,加解密速度慢,一般用来加密少量数据,例如,可以用来加密DES算法中的密钥。
  • MD5(**M**essage Digest Algorithm),严格的讲,它是一种密码散列函数,可以产生出一个128位的散列值。它是单向的加密算法,明文可以变成密文,但是通过密文无法解密成明文,一般用于验证数据的准确性,以及信息传输的完整性。
  • SHA-1(**S**ecure Hash Algorithm - 1) 与MD5一样,也是一种密码散列算法,它可以生成一个被称为消息摘要的160位(20字节)散列值。
  • Base64:在Web中还有一个比较常见的加解密方法,那就是Base64,准确来说,它其实是一种将任意二进制到文本字符串的编码方法。它并没有所谓的密钥。常用于在URL、Cookie、网页中传输少量二进制数据。

散列函数:将任意大小的数据映射到一个较小的、固定长度的唯一值。加密性强的散列一定是不可逆的,这就意味着通过散列结果,无法推出任何部分的原始信息。任何输入信息的变化,哪怕仅一位,都将导致散列结果的明显变化,这称之为雪崩效应。散列还应该是防冲突的,即找不出具有相同散列结果的两条信息。具有这些特性的散列结果就可以用于验证信息是否被修改。

本文来源于个人付费Chat,感兴趣可扫码下方二维码查看。


Comments
Write a Comment