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网页游戏学习之Xnova(ogame)源码解读(十)
Jun 24 PHP
php实现根据IP地址获取其所在省市的方法
Apr 30 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
Dec 24 PHP
PHP实现查询两个数组中不同元素的方法
Feb 23 PHP
php阳历转农历优化版
Aug 08 PHP
PHP中call_user_func_array回调函数的用法示例
Nov 26 PHP
PHP多进程编程实例详解
Jul 19 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
PHP实现动态压缩js与css文件的方法
May 02 PHP
PHP预定义超全局数组变量小结
Aug 20 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
Jan 23 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
Jun 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
js下函数般调用正则的方法附代码
2008/06/22 PHP
php设计模式 Visitor 访问者模式
2011/06/28 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
js二级地域选择的实现方法
2013/06/17 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
2014/05/11 Javascript
JSON 必知必会 观后记
2016/10/27 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
2017/08/11 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
bootstrap-Treeview实现级联勾选
2017/11/23 Javascript
Echart折线图手柄触发事件示例详解
2018/12/16 Javascript
详解使用angular框架离线你的应用(pwa指南)
2019/01/31 Javascript
vue实现点击追加选中样式效果
2019/11/01 Javascript
vue+Element中table表格实现可编辑(select下拉框)
2020/05/21 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
[42:32]Secret vs Optic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
利用python获取当前日期前后N天或N月日期的方法示例
2017/07/30 Python
Python网络编程之TCP套接字简单用法示例
2018/04/09 Python
python numpy格式化打印的实例
2018/05/14 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
2019/02/19 Python
2019 Python最新面试题及答案16道题
2019/04/11 Python
用python打印1~20的整数实例讲解
2019/07/01 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
Python读取pdf表格写入excel的方法
2021/01/22 Python
域名注册、建站工具、网页主机、SSL证书:Dynadot
2017/01/06 全球购物
简单介绍Object类的功能、常用方法
2013/10/02 面试题
保安的辞职报告怎么写
2014/01/20 职场文书
关于赌博的检讨书
2014/01/24 职场文书
秋天的雨教学反思
2014/04/27 职场文书
法院反腐倡廉心得体会
2014/09/09 职场文书
党员学习正风肃纪思想汇报
2014/09/12 职场文书
2014村书记党建工作汇报材料
2014/11/02 职场文书
2014年教育实习工作总结
2014/11/22 职场文书