PHP基于mcript扩展实现对称加密功能示例


Posted in PHP onFebruary 21, 2019

本文实例讲述了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
还原:我是加密前的内容

PHP 相关文章推荐
PHPMYADMIN 简明安装教程 推荐
Mar 07 PHP
基于PHP编程注意事项的小结
Apr 27 PHP
php遍历文件夹下的所有文件和子文件夹示例
Mar 20 PHP
PHP 正则表达式常用函数
Aug 17 PHP
php通过exif_read_data函数获取图片的exif信息
May 21 PHP
php动态绑定变量的用法
Jun 16 PHP
php实现统计目录文件大小的函数
Dec 25 PHP
thinkphp3.x中session方法的用法分析
May 20 PHP
比较完整的微信开发php代码
Aug 02 PHP
PHP抽象类和接口用法实例详解
Jul 20 PHP
PHP Swoole异步Redis客户端实现方法示例
Oct 24 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 PHP
PHP+jQuery实现双击修改table表格功能示例
Feb 21 #PHP
PHP+jQuery实现即点即改功能示例
Feb 21 #PHP
PHP hebrev()函数用法讲解
Feb 21 #PHP
Yii2.0框架实现带分页的多条件搜索功能示例
Feb 20 #PHP
PHP获取访问设备信息的方法示例
Feb 20 #PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
Feb 20 #PHP
PHP调用全国天气预报数据接口查询天气示例
Feb 20 #PHP
You might like
什么是短波收听SWL
2021/03/01 无线电
PHP数组操作汇总 php数组的使用技巧
2011/07/17 PHP
用php解析html的实现代码
2011/08/08 PHP
php使用smtp发送支持附件的邮件示例
2014/04/13 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
PHP文件缓存类示例分享
2015/01/30 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
2016/05/16 PHP
laravel学习教程之存取器
2016/07/30 PHP
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
Jquery使用Firefox FireBug插件调试Ajax步骤讲解
2013/12/02 Javascript
JavaScript link方法入门实例(给字符串加上超链接)
2014/10/17 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
详解vue+vueRouter+webpack的简单实例
2017/06/17 Javascript
JavaScript 完成注册页面表单校验的实例
2017/08/19 Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
2018/04/11 jQuery
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
微信小程序新手教程之页面打开数量限制
2019/03/03 Javascript
JavaScript实现的九种排序算法
2019/03/04 Javascript
es6 for循环中let和var区别详解
2020/01/12 Javascript
[32:26]EG vs IG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
优衣库英国官网:UNIQLO英国
2016/12/25 全球购物
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
巴西购物网站:Estrela10
2018/12/13 全球购物
下面关于"联合"的题目的输出是什么
2013/08/06 面试题
南京某软件公司的.net面试题
2015/11/30 面试题
工程质量承诺书
2014/03/27 职场文书
师恩难忘教学反思
2014/04/27 职场文书
乡镇群众路线教育实践活动整改措施
2014/10/04 职场文书
银行贷款收入证明
2014/10/17 职场文书
技术股东合作协议书
2014/12/02 职场文书
保卫工作个人总结
2015/03/03 职场文书
中国梦党课学习心得体会
2016/01/05 职场文书
Mysql 如何批量插入数据
2021/04/06 MySQL
详解Vue的sync修饰符
2021/05/15 Vue.js
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android