
在 PHP 里面, 大家经常用到几个加密解密的函数, 这些东西是用来处理数据安全的。这些函数中包含了 md5、sha1, 还有 crypt。1. md5函数是md5, 它算是一个十六进制的散列函数, 它的用途就是拿来做字符串的加密处理, 它能将任意的一段字符串去转换为一个128位的数据散列值的, 这个被称为md5加密后的数值是不可逆的状态, 这意思就是没办法通过那个散列值本身再去获取到原始的字符串内容, md5通常会拿去存放密码对应的散列值的, 不过因为会存在数据碰撞的问题还有安全性上面的那些弱点因素在, 所以当前是不推荐继续把它当成唯一的密码加密方法来使用的了。2. sha1函数, 这个sha1它是一种安全散列算法, 用来给数据进行加密的。它和md5是类似的, sha1也能把任何字符串转成对应的散列值。区别在于, sha1生成的散列值要更长一些, 长度可以达到一百六十位。尽管从安全性角度讲, sha1比md5更靠谱了点, 可是, 它还是一样的会撞到碰撞的问题。结果, 就是现在已经被那些更强壮的算法给替代掉了。3. 函数是一种将二进制数据编码为可打印的ASCII字符的方法, 它把数据进行编码之后, 可以在网络传输或者存储时使用, 这种编码是可逆的, 也就是能够通过解码把编码过的数据还原成原始数据, 它并不是一种安全的加密算法, 而是一种编码方式。4. crypt函数是一种用来对字符串进行加密和解密工作的函数, 它会使用一个叫作盐值的东西来参与加密过程, 这个盐值可以是系统随机生成的, 也可以是用户自己传进去的字符串, 基于所采用的算法搭配盐值, 这个函数就能生成一串已经变过的、加密后的内容, 人们常常会把这个crypt函数用在与存储用户密码有关的操作上, 靠的是先把密码做哈希处理再配上盐值的方法来存放数据, 这样能够把密码的安全性给提升上去。需要注意的是虽然这些函数可以对数据进行加密和解密但要根据具体的需求和安全标准选择适当的加密方式。同时为了增强安全性还应该考虑使用更强大的算法如或以及加盐、哈希迭代等方法。