PHP加密方式分为单项散列加密,对称加密,非对称加密这几类。
像常用的MD5、hash、crypt、sha1这种就是单项散列加密,单项散列加密是不可逆的。
像URL编码、base64编码这种就是对称加密,是可逆的,就是说加密解密都是用的同一秘钥。
除此外就是非对称加密,加密和解密的秘钥不是同一个,如果从安全性而言,加密的信息如果还想着再解密回来,非对称加密无疑是最为安全的方式。
MD5加密
md5加密算法在PHP中是最常见的加密算法,这个算法是不可逆的,通常用于加密用户的密码等信息来保证用户的信息安全。
Crypt()加密算法
crypt()加密算法是一种不可逆的加密算法,他有两个参数,一个是需要加密的字符串,另外一个是盐值(或者成为干扰字符串),如果没有指定第二个参数那么将自己随机生成一个干扰字符串并且是以MD5加密的方式。另外这个函数在不同的操作系统上的表现形式也是不一样的,会自动检测。
sha1加密算法
sha1加密算法和MD5加密算法一样时不可逆的,有两个参数,一个是要加密的字符串,第二个是bool值,如果指定第二个参数为TRUE,则返回二进制格式的字符串,如果不指定则默认为FALSE,返回的是40位的16进制格式的字符串。
URL编码加密
对于我们的网站,直接暴露给用户的就是地址栏的传参,对于这一部分都是明文的,所以我们可以使用基本的加密算法来简单加密一下,注意,此种方式加密是可逆的,也就是说加密后的密文我们可以解密之后看到,所以如果你想实现真正的加密,并不推荐这个加密算法。
在PHP中对于URL加密解密用到两个函数urlencode和urldecode.
Base64编码加密
大家注意,虽然base64写到本节加密算法中,但是他并不是主要用来加密的,而且从大多数的程序来说,几乎没有人会用他作为加密手段来加密数据,那么他的作用主要是用于做什么呢?这要说的base64加密的机制了。
base64加密本质上说就是把数据转换为ASCLL码,比如一个图片进行base64编码就会变成一堆以Ascll码连接的字符串,这会更有利于文件的传输,当然base64的作用在与文件的传输。例如手机客户端上传文件到服务器,使用base64编码可以轻松实现文件的传输。
hash加密
hash加密也是不可逆的,因为是给定一个不确定的字符串返回特定长度的字符串,这个本质意义上来说实现了单项散列加密。
领取专属 10元无门槛券
私享最新 技术干货