1.加密算法汇总
比较常用的算法:md5()加密,crypt()加密,sha1加密,URL编码加密,base64编码加密
信息加密技术分为三类:单项散列加密,对称散列加密,非对称散列加密.
1-1单项散列加密(MD5加密,crypt()加密,sha1加密,)
单向散列加密 指的是通过不同输入长度的信息进行散列计算,得到固定长度的输出,这个散列计算过程是单向的,不能对固定长度的输出进行计算从而获得输入信息.
1-2对称散列加密
对称加密指的是加密和解密使用同一个密钥或者可以相互推算.
1-3非对称散列加密
非对称加密和解密使用的不是通风一个密钥,其中一个对外公开被称为公钥,另一个只有所有者知道(一个钥匙一把锁)
2. md5()加密
单项加密,无法解密.
md5(string $str[,bool $raw_output=false]);
对于可选参数raw_output。如果设置为true,那么MD5报文摘要将以16字节长度的原始二进制格式返回。false返回32位字符十六进制数字形式返回散列值。
为了使加密更难破解,可以连续两次加密,如:md5(md5($str))
3. crypt()加密
单项加密,无法解密.
crypt(string $str[, string $salt]);
//返回一个基于UNIX DES算法或系统上其他可用的替代算法的散列字符串。
$slt:加密时的干扰串,使编码更安全。
//如果没有$salt,将随机生成一个干扰串,否则刷新加密密文不变。 当为md5时,以$1$开头,后面接不超过8位的随机字符。
4. sha1加密
单向加密,无法解密。
sha1(string $str[, bool $raw_output = false]);
//计算字符的sha1散列值
$raw_output:如果可选的raw_output参数被设置为true,那么sha1摘要将以20字符长度的原始格式返回。false返回值是一个40字符长度的十六进制数字。
5. URL编码加密
双向加密,可以解密。
urlencode(string $str):编码url字符串。
urldecode(string $str):解码已编码的url字符串。
编码规范:次字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)
常见的几个:
? => %3F
= => %3D
空格 => +
% => %25
& => %26
\ => %5C
+ => %2B
6. base64编码加密
双向加密,可以解密。
base64_encode(string $data):使用base64对data进行编码。
base64_decode(string $data[, bool $strict = false]):对使用MIME base64编码的数据进行解码。
//strict:如果输入的数据超除了base64字母表,则返回false。
在img标签中的时候:
<img src="https://img-blog.csdnimg.cn/2022010700523330252.jpeg" >
<img src="data:; base64, dfsafsdfsdfdf==" >