本文实例讲述了php基于mcript扩展实现对称加密功能,结合实例形式简单分析了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????~?zi
trn1duq6vt4i8v66ea9jo7qz2x7jwmkf
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
还原:我是加密前的内容
租用游戏服务器的价格 如何搭建游戏服务器天津租赁gpu服务器云主机云服务器商家千千万,安全云平台谁“耐看”?我这个备案账号下面是只有这个手机号有短信验证吗华为云弹性云服务器怎么用成都购买云服务器吗没有安装宝塔面板-云服务器问题java怎么保存数据