这篇文章将为大家详细讲解有关如何在PHP中使用mcript扩展实现一个对称加密功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
1.对称加密主要利用相同的密钥来实现,而非对称加密利用公钥和私钥来加密,比较而言对称加密速度快,但是安全性要低
为什么使用base64_encode()
,主要是用于传参,直接加密完成后不是我们能理解的字符串,也就是大家所说的乱码
2.进行加密(使用mcript扩展,DES类型),关键点在于$key="key:1111"
,相同的密钥串
<?php header("content-type:text/html;charset=utf-8"); $str = "我是加密前的内容"; //加密内容 $key = "key:1111"; //密钥 $cipher = MCRYPT_DES; //密码类型 $modes = MCRYPT_MODE_ECB; //密码模式 $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),MCRYPT_RAND);//初始化向量 echo "加密明文:".$str."<p>"; $str_encrypt = mcrypt_encrypt($cipher,$key,$str,$modes,$iv); //加密函数 echo "加密密文:".$str_encrypt." <p>"; echo $str_encrypt=base64_encode($str_encrypt);
运行结果:
加密明文:我是加密前的内容
加密密文:���v꺾�"����c����~�Zitrn1duq6vt4i8v66Ea9jo7qZ2X7JWmkf
3.进行解密,$key="key:1111",相同的密钥串
<?php header("content-type:text/html;charset=utf-8"); $key = "key:1111"; //密钥 $cipher = MCRYPT_DES; //密码类型 $modes = MCRYPT_MODE_ECB; //密码模式 $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),MCRYPT_RAND);//初始化向量 $str_encrypt="trn1duq6vt4i8v66Ea9jo7qZ2X7JWmkf";//这里的值是第2步中的$str_encrypt=base64_encode($str_encrypt); $str_encrypt=base64_decode($str_encrypt); echo "加密密文:".$str_encrypt." <p>"; $str_decrypt = mcrypt_decrypt($cipher,$key,$str_encrypt,$modes,$iv); //解密函数 echo "还原:".$str_decrypt;
运行结果:
加密密文:���v꺾�"����c����~�Zi
还原:我是加密前的内容
关于如何在PHP中使用mcript扩展实现一个对称加密功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。