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(3)
Oct 09 PHP
Windows下的PHP5.0详解
Nov 18 PHP
纯php打造的tab选项卡效果代码(不用js)
Dec 29 PHP
php 注释规范
Mar 29 PHP
测试php连接mysql是否成功的代码分享
Jan 24 PHP
zf框架的校验器InArray使用示例
Mar 13 PHP
php设置静态内容缓存时间的方法
Dec 01 PHP
PHP+ajax分页实例简析
Dec 07 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
PHP实现git部署的方法教程
Dec 19 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
Jun 03 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 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
15种PHP Encoder的比较
2007/03/06 PHP
PHP 危险函数解释 分析
2009/04/22 PHP
PHP自定义函数收代码
2010/08/01 PHP
Ext JS Grid在IE6 下宽度的问题解决方法
2009/02/15 Javascript
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
javascript prototype原型操作笔记
2009/12/07 Javascript
从数据结构的角度分析 for each in 比 for in 快的多
2013/07/07 Javascript
JS 在指定数组中随机取出N个不重复的数据
2014/06/10 Javascript
js取得html iframe中的元素和变量值
2014/06/30 Javascript
jquery中ajax跨域方法实例分析
2015/12/18 Javascript
通过jquery实现页面的动画效果(实例代码)
2016/09/18 Javascript
javascript中异常处理案例(推荐)
2016/10/03 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
2017/01/19 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
JS实现的新闻列表自动滚动效果示例
2019/01/30 Javascript
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
微信小程序云开发之云函数详解
2019/05/16 Javascript
python发送邮件的实例代码(支持html、图片、附件)
2013/03/04 Python
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
Python 中 list 的各项操作技巧
2017/04/13 Python
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
Python设计模式之门面模式简单示例
2018/01/09 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
利用Python正则表达式过滤敏感词的方法
2019/01/21 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
django表单的Widgets使用详解
2019/07/22 Python
Django项目中使用JWT的实现代码
2019/11/04 Python
python编写微信公众号首图思路详解
2019/12/13 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
Django 构建模板form表单的两种方法
2020/06/14 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
python3.5的包存放的具体路径
2020/08/16 Python
python math模块的基本使用教程
2021/01/16 Python
基于CSS3的animation属性实现微信拍一拍动画效果
2020/06/22 HTML / CSS
经典商业广告词
2014/03/13 职场文书
2014年小学重阳节活动策划方案
2014/09/16 职场文书