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连接mysql数据库代码
Mar 10 PHP
php zip文件解压类代码
Dec 02 PHP
PHP setTime 设置当前时间的代码
Aug 27 PHP
PHP 使用MySQL管理Session的回调函数详解
Jun 21 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(八)
Jun 23 PHP
PHP中比较时间大小实例
Aug 21 PHP
yii2使用ajax返回json的实现方法
May 14 PHP
PHP Filter过滤器全面解析
Aug 09 PHP
PHP三种方式实现链式操作详解
Jan 21 PHP
使用ThinkPHP生成缩略图及显示
Apr 27 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
关于Laravel参数验证的一些疑与惑
Nov 19 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
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
PHP Curl多线程原理实例详解
2013/11/06 PHP
destoon安装出现Internal Server Error的解决方法
2014/06/21 PHP
php中eval函数的危害与正确禁用方法
2014/06/30 PHP
PHP创建/删除/复制文件夹、文件
2016/05/03 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
2020/09/17 PHP
Prototype Object对象 学习
2009/07/12 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
javascript性能优化之事件委托实例详解
2015/12/12 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
vue.js中指令Directives详解
2017/03/20 Javascript
webpack学习笔记之优化缓存、合并、懒加载
2017/08/24 Javascript
React组件refs的使用详解
2018/02/09 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
在Vue中使用HOC模式的实现
2020/08/23 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
2020/10/21 Javascript
在Linux中通过Python脚本访问mdb数据库的方法
2015/05/06 Python
Python修改MP3文件的方法
2015/06/15 Python
numpy找出array中的最大值,最小值实例
2018/04/03 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
Python使用Pandas库实现MySQL数据库的读写
2019/07/06 Python
python统计文章中单词出现次数实例
2020/02/27 Python
Python基于内置函数type创建新类型
2020/10/22 Python
使用CSS3的appearance属性改变任何元素的浏览器默认风格
2012/12/24 HTML / CSS
单位人事专员介绍信
2014/01/11 职场文书
小学生暑假感言
2014/02/06 职场文书
小学生竞选班干部演讲稿
2014/04/24 职场文书
国际贸易毕业生自荐书
2014/06/22 职场文书
社区安全生产月活动总结
2014/07/05 职场文书
母亲去世追悼词
2015/06/23 职场文书
go语言中fallthrough的用法说明
2021/05/06 Golang
CSS实现渐变色边框(Gradient borders)的5种方法
2022/03/25 HTML / CSS