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 相关文章推荐
怎样才能成为PHP高手?学会“懒惰”的编程
Dec 05 PHP
php在线生成ico文件的代码
Oct 09 PHP
php替换超长文本中的特殊字符的函数代码
May 22 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
Jul 22 PHP
图解找出PHP配置文件php.ini的路径的方法
Aug 20 PHP
在PHP程序中使用Rust扩展的方法
Jul 03 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
Jul 01 PHP
PHP数组相加操作及与array_merge的区别浅析
Nov 26 PHP
PHP实现可精确验证身份证号码的工具类示例
May 31 PHP
php闭包中使用use声明变量的作用域实例分析
Aug 09 PHP
Laravel5.1框架注册中间件的三种场景详解
Jul 09 PHP
PHP 构造函数和析构函数原理与用法分析
Apr 21 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
如何提高MYSQL数据库的查询统计速度 select 索引应用
2007/04/11 PHP
php模拟socket一次连接,多次发送数据的实现代码
2011/07/26 PHP
PHP 扩展Memcached命令用法实例总结
2020/06/04 PHP
jQuery 性能优化指南(3)
2009/05/21 Javascript
js下将字符串当函数执行的方法
2011/07/13 Javascript
实现局部遮罩与关闭原理及代码
2013/02/04 Javascript
javascript实现简单的贪吃蛇游戏
2015/03/31 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
2016/01/26 Javascript
jquery+ajax+text文本框实现智能提示完整实例
2016/07/09 Javascript
深入浅出ES6之let和const命令
2016/08/25 Javascript
初识简单却不失优雅的Vue.js
2016/09/12 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
ASP.NET jquery ajax传递参数的实例
2016/11/02 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
python3 图片referer防盗链的实现方法
2018/03/12 Python
Python元组拆包和具名元组解析实例详解
2018/03/26 Python
python使用tensorflow深度学习识别验证码
2018/04/03 Python
Flask框架Jinjia模板常用语法总结
2018/07/19 Python
python 实现逻辑回归
2020/12/30 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
使用CSS3配合IE滤镜实现渐变和投影的效果
2015/09/06 HTML / CSS
美国新娘礼品店:The Paisley Box
2020/09/08 全球购物
乌克兰网上珠宝商店:GoldSoveren
2020/03/31 全球购物
斯洛伐克最大的婴儿食品和用品网上商店:Feedo.sk
2020/12/21 全球购物
电气自动化自荐信
2013/10/10 职场文书
俄语专业毕业生推荐信
2013/10/28 职场文书
中式结婚主持词
2014/03/14 职场文书
欢迎标语大全
2014/06/21 职场文书
小学教师读书活动总结
2014/07/08 职场文书
常务副县长“三严三实”对照检查材料思想汇报
2014/10/05 职场文书
小学生六年级作文之关于感恩
2019/08/16 职场文书