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 相关文章推荐
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
Dec 01 PHP
php生成zip压缩文件的方法详解
Jun 09 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
Jun 27 PHP
php ctype函数中文翻译和示例
Mar 21 PHP
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
Aug 04 PHP
thinkphp获取栏目和文章当前位置的方法
Oct 29 PHP
laravel 4安装及入门图文教程
Oct 29 PHP
浅谈php自定义错误日志
Feb 13 PHP
再Docker中架设完整的WordPress站点全攻略
Jul 29 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
Laravel框架在本地虚拟机快速安装的方法详解
Jun 11 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
Apr 23 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
浅谈PHP检查数组中是否存在某个值 in_array 函数
2016/06/13 PHP
php微信公众号开发(3)php实现简单微信文本通讯
2016/12/15 PHP
php 浮点数比较方法详解
2017/05/05 PHP
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
jQuery-ui中自动完成实现方法
2010/06/10 Javascript
用jquery模仿的a的title属性的例子
2014/10/22 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
2015/10/08 Javascript
Prototype框架详解
2015/11/25 Javascript
深入浅析Node.js 事件循环
2015/12/20 Javascript
vue自定义指令实现v-tap插件
2016/11/03 Javascript
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
使用jQuery实现购物车结算功能
2017/08/15 jQuery
详解Angular系列之变化检测(Change Detection)
2018/02/26 Javascript
Vue2.0实现组件数据的双向绑定问题
2018/03/06 Javascript
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
python读取word文档,插入mysql数据库的示例代码
2018/11/07 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
Python爬虫运用正则表达式的方法和优缺点
2019/08/25 Python
python对Excel的读取的示例代码
2020/02/14 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
2020/02/27 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
HTML5图片层叠的实现示例
2020/07/07 HTML / CSS
加拿大在线隐形眼镜专家:PerfectLens.ca
2016/11/19 全球购物
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
For Art’s Sake官网:手工制作的奢华眼镜
2018/12/15 全球购物
语文教育专业应届生求职信
2013/11/23 职场文书
银行开业庆典方案
2014/02/06 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
大学生创业计划书
2014/08/14 职场文书
工作态度不端正检讨书
2014/10/04 职场文书
储备店长岗位职责
2015/04/14 职场文书
工作调动申请报告
2015/05/18 职场文书
呼啸山庄读书笔记
2015/06/29 职场文书
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL