PHP常见的加密算法
一:单向加密算法
1、md5($str, bool):默认返回32位,为true返回16位的二进制字符;
2、crypt($strl, $salt):$salt为干扰串,置于密文前面,有多种格式;
3、sha1($str, bool):默认返回40位,为true返回20位的源码格式字符;
二:双向加密算法
1、urlencode();
2、rawurlencode();
3、base64_encode():转码图片等,<img src="data:image/jpeg;base64,xxxx(base64加密后的字符)">,浏览器可直接解码显示该图片,而不必显示图片地址。
其中urlencode()和rawurlencode()的分析:
一:区别在于:
urlencode()将空格转为了'+'号,而rawurlencode()将空格转为了%20,这是唯一的区别。
二:相同点:
都是将-_.之外的所有非字母数字字符进行了编码,转成了%加两位十六进制字符。
单向散列算法、对称算法、非对称算法:
单向散列算法:将不同长度的字符转成了相同长度的字符串;
对称算法:加密和解码的密钥相同,加密/解密快;
非对称算法:加密使用的是大家都知道的公钥,而解码时只能使用只有自己知道的私钥。