PHP中几种加密形式
1.Md5加密和Crypt都是单向加密:
登陆时把登录密码转为md5值,然后和数据库中的进行比较。
其中crypt中的盐值支持多种:
以CRYPT_STD_DES是以/0-9A-Za-z/中的两个字符为盐值,如果是以CRYPT_MD5中以$1$开始的12个字符的字符串盐值
例如:crypt('imooc','this is zmj')就会只取th为盐值和加密后的imooc拼接。
2.sha1加密算法:也是单向加密
![](https://images2017.cnblogs.com/blog/1019019/201710/1019019-20171019221045849-1345624565.png)
3.URL编码加密技术:
区别:urlencode把空格变成了+,经过rawurlencode是把空格变成了%20
url编码用途:可以编码汉字,还可以针对url传参数时,参数的值为abd&dff形式
4.
![](https://images2017.cnblogs.com/blog/1019019/201710/1019019-20171019221230131-1917165508.png)
这样就可以输出图片
总结:
![](https://images2017.cnblogs.com/blog/1019019/201710/1019019-20171019221322552-267248085.png)
//加密字符串
1 function encrypt($encrypt,$key="key") {
2
3 $iv = mcrypt_create_iv ( mcrypt_get_iv_size ( MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB ), MCRYPT_RAND );
4
5 $passcrypt = mcrypt_encrypt ( MCRYPT_RIJNDAEL_256, $key, $encrypt, MCRYPT_MODE_ECB, $iv );
6
7 $encode = base64_encode ( $passcrypt );
8
9 return $encode;
10
11 }
//解密字符串
1 function decrypt($decrypt,$key="key") {
2 $decoded = base64_decode ( $decrypt );
3 $iv = mcrypt_create_iv ( mcrypt_get_iv_size ( MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB ), MCRYPT_RAND );
4 $decrypted = mcrypt_decrypt ( MCRYPT_RIJNDAEL_256, $key, $decoded, MCRYPT_MODE_ECB, $iv );
5 return $decrypted;
6
7 }
PHP程序员们在编写代码程序时,除了要保证代码的高性能之外,还有一点是非常重要的,那就是程序的安全性保障。PHP除了自带的几种加密函数外,还有功能更全面的PHP加密扩展库Mcrypt和Mhash。
其中,Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。
mcrypt 是 php 里面重要的加密支持扩展库,linux环境下:该库在默认情况下不开启。window环境下:PHP>=5.3,默认开启mcrypt扩展。
Mcrypt库支持20多种加密算法和8种加密模式,具体可以通过函数mcrypt_list_algorithms()和mcrypt_list_modes()来显示[1]
加密算法
Mcrypt支持的算法有:
cast-128
gost
rijndael-128
twofish
arcfour
cast-256
loki97
rijndael-192
saferplus
wake
blowfish-compat
des
rijndael-256
serpent
xtea
blowfish
enigma
rc2
tripledes
加密模式
Mcrypt支持的加密模式有:
cbc
cfb
ctr
ecb
ncfb
nofb
ofb
stream
这些算法和模式在应用中要以常量来表示,写的时候加上前缀MCRYPT_和MCRYPT_MODE_来表示,如下面Mcrypt应用的