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 相关文章推荐
简单的页面缓冲技术
Oct 09 PHP
使用Apache的htaccess防止图片被盗链的解决方法
Apr 27 PHP
PHP Global定义全局变量使用说明
Aug 15 PHP
解密ThinkPHP3.1.2版本之模板继承
Jun 19 PHP
对PHP PDO的一些认识小结
Jan 23 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
总结PHP中DateTime的常用方法
Aug 11 PHP
php 生成Tab键或逗号分隔的CSV
Sep 24 PHP
php制作基于xml的RSS订阅源功能示例
Feb 08 PHP
PHP实现文件上传功能实例代码
May 18 PHP
php7安装mongoDB扩展的方法分析
Aug 02 PHP
php微信开发之音乐回复功能
Jun 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
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
phpMyadmin 用户权限中英对照
2010/04/02 PHP
php数组函数序列之array_search()- 按元素值返回键名
2011/11/04 PHP
php二维数组排序方法(array_multisort usort)
2013/12/25 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
2018/01/27 PHP
JavaScript中的Location地址对象
2008/01/16 Javascript
Cookie 注入是怎样产生的
2009/04/08 Javascript
jquery命令汇总,方便使用jquery的朋友
2012/06/26 Javascript
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
超链接的禁用属性Disabled使用示例
2014/07/31 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
2015/11/17 Javascript
JS小数运算出现多为小数问题的解决方法
2016/06/02 Javascript
JavaScript ES5标准中新增的Array方法
2016/06/28 Javascript
纯js和css完成贪吃蛇小游戏demo
2016/09/01 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
2017/04/13 Javascript
JS实现的简单表单验证功能完整实例
2017/10/14 Javascript
jQuery发请求传输中文参数乱码问题的解决方案
2018/05/22 jQuery
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
[01:15:00]LGD vs Mineski Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
Python 元类使用说明
2009/12/18 Python
详解Python3中yield生成器的用法
2015/08/20 Python
python生成器表达式和列表解析
2016/03/10 Python
python 实现创建文件夹和创建日志文件的方法
2019/07/07 Python
python 使用cx-freeze打包程序的实现
2020/03/14 Python
Python实现多线程下载脚本的示例代码
2020/04/03 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
Python中过滤字符串列表的方法
2020/12/22 Python
办公室经理岗位职责
2014/01/01 职场文书
《回乡偶书》教学反思
2014/04/12 职场文书
判缓刑人员个人思想汇报
2014/10/10 职场文书
公司给客户的感谢信
2015/01/23 职场文书
2015年司法所工作总结
2015/04/27 职场文书
赢在执行观后感
2015/06/16 职场文书
JS中一些高效的魔法运算符总结
2021/05/06 Javascript