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预定义常量
Dec 25 PHP
PHP中ADODB类详解
Mar 25 PHP
php htmlentities和htmlspecialchars 的区别
Aug 18 PHP
php fsockopen中多线程问题的解决办法[翻译]
Nov 09 PHP
ThinkPHP实现将本地文件打包成zip下载
Jun 26 PHP
ThinkPHP跳转页success及error模板实例教程
Jul 17 PHP
简单实用的网站PHP缓存类实例
Jul 18 PHP
PHP常用技术文之文件操作和目录操作总结
Sep 27 PHP
Zend Framework教程之Resource Autoloading用法实例
Mar 08 PHP
适合PHP初学者阅读的4本经典书籍
Sep 23 PHP
php实现用户登陆简单实例
Apr 04 PHP
PHP实现普通hash分布式算法简单示例
Aug 06 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面向对象全攻略 (七) 继承性
2009/09/30 PHP
PHP中Date()时间日期函数的使用方法小结
2011/04/20 PHP
php图片加水印原理(超简单的实例代码)
2013/01/18 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
2014/09/10 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
php实现数组重复数字统计实例
2018/09/30 PHP
js 跨域和ajax 跨域问题小结
2009/07/01 Javascript
javascript Onunload与Onbeforeunload使用小结
2009/12/31 Javascript
12个非常有创意的JavaScript小游戏
2010/03/18 Javascript
jQuery fadeTo方法调整图片的透明度使用介绍
2013/05/06 Javascript
jQuery获取动态生成的元素示例
2014/06/15 Javascript
CSS3,HTML5和jQuery搜索框集锦
2014/12/02 Javascript
js禁止浏览器的回退事件
2017/04/20 Javascript
小程序红包雨的实现示例
2019/02/19 Javascript
node中使用log4js4.x版本记录日志的方法
2019/08/20 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
2020/08/10 Javascript
Python3.x和Python2.x的区别介绍
2013/02/12 Python
让python在hadoop上跑起来
2016/01/27 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
2017/12/14 Python
Python子类继承父类构造函数详解
2019/02/19 Python
分享一个pycharm专业版安装的永久使用方法
2019/09/24 Python
使用Python实现画一个中国地图
2019/11/23 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
如何用 Python 制作 GitHub 消息助手
2021/02/20 Python
HTML5 Canvas API中drawImage()方法的使用实例
2016/03/25 HTML / CSS
写自荐信的七个技巧
2013/10/15 职场文书
幼师求职自荐信范文
2014/01/26 职场文书
学期自我评价
2014/01/27 职场文书
努力工作保证书
2015/02/28 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
毕业实习感受与体会
2015/05/26 职场文书
物业保洁员管理制度
2015/08/05 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
Python Django 后台管理之后台模型属性详解
2021/04/25 Python
Meta增速拉垮,元宇宙难当重任
2022/04/29 数码科技