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 相关文章推荐
is_uploaded_file函数引发的不能上传文件问题
Oct 29 PHP
php判断正常访问和外部访问的示例
Feb 10 PHP
php对数组排序代码分享
Feb 24 PHP
PHP 之 写时复制介绍(Copy On Write)
May 13 PHP
php图片的二进制转换实现方法
Dec 15 PHP
php析构函数的简单使用说明
Aug 24 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
May 20 PHP
既简单又安全的PHP验证码 附调用方法
Jun 02 PHP
浅谈php数组array_change_key_case() 函数和array_chunk()函数
Oct 22 PHP
thinkPHP自动验证机制详解
Dec 05 PHP
PHP7如何开启Opcode打造强悍性能详解
May 11 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
Sep 28 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的FTP学习(四)
2006/10/09 PHP
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
利用curl抓取远程页面内容的示例代码
2013/07/23 PHP
php导出生成word的方法
2015/12/25 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
In Javascript Class, how to call the prototype method.(three method)
2007/01/09 Javascript
Javascript 实现TreeView CheckBox全选效果
2010/01/11 Javascript
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
2014/01/31 Javascript
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
js生成随机颜色方法代码分享(三种)
2016/12/29 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
nodejs集成sqlite使用示例
2017/06/05 NodeJs
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
JS原型与继承操作示例
2019/05/09 Javascript
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
JavaScript中的执行环境和作用域链
2020/09/04 Javascript
利用Python破解斗地主残局详解
2017/06/30 Python
python pandas修改列属性的方法详解
2018/06/09 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
Python基于plotly模块实现的画图操作示例
2019/01/23 Python
Python之修改图片像素值的方法
2019/07/03 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
Python xlrd excel文件操作代码实例
2020/03/10 Python
keras中的loss、optimizer、metrics用法
2020/06/15 Python
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
模具设计与制造专业应届生求职信
2013/10/18 职场文书
计算机毕业大学生推荐信
2013/12/01 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
2016入党积极分子心得体会
2016/01/06 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
导游词之澳门妈祖庙
2019/12/19 职场文书
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js