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 相关文章推荐
真正面向对象编程:PHP5.01发布
Oct 09 PHP
?生?D片??C字串
Dec 06 PHP
第五章 php数组操作
Dec 30 PHP
PHP新手用的Insert和Update语句构造类
Mar 31 PHP
PHP三元运算的2种写法代码实例
May 12 PHP
详解PHP对象的串行化与反串行化
Jan 24 PHP
PHP链表操作简单示例
Oct 15 PHP
PHP实现上传图片到 zimg 服务器
Oct 19 PHP
php文件包含目录配置open_basedir的使用与性能详解
Apr 03 PHP
php文件上传及下载附带显示文件及目录功能
Apr 27 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
Sep 02 PHP
laravel 获取某个查询的查询SQL语句方法
Oct 12 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
ThinkPHP基于PHPExcel导入Excel文件的方法
2014/10/15 PHP
PHP实现获取某个月份周次信息的方法
2015/08/11 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
php使用Jpgraph创建折线图效果示例
2017/02/15 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
2019/10/17 PHP
使用PHP开发留言板功能
2019/11/19 PHP
基于jquery封装的一个js分页
2011/11/15 Javascript
Jquery 点击按钮自动高亮实现原理及代码
2014/04/25 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
JS实现显示带倒影的图片横排居中放大展示特效实例【测试可用】
2016/08/23 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
利用ES6语法重构React组件详解
2017/03/02 Javascript
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
js实现控制文件拖拽并获取拖拽内容功能
2018/02/17 Javascript
vue 标签属性数据绑定和拼接的实现方法
2018/05/17 Javascript
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
2018/08/27 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
[02:41]DOTA2英雄基础教程 冥魂大帝
2014/01/16 DOTA
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
python文件写入实例分析
2015/04/08 Python
python 开发的三种运行模式详细介绍
2017/01/18 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
django rest framework serializer返回时间自动格式化方法
2020/03/31 Python
Python实现异步IO的示例
2020/11/05 Python
python中scipy.stats产生随机数实例讲解
2021/02/19 Python
萨克斯第五大道精品百货店: Saks Fifth Avenue
2017/04/28 全球购物
Paul’s Boutique官网:英国时尚手袋品牌
2018/03/31 全球购物
解决python 输出到csv 出现多空行的情况
2021/03/24 Python
入职担保书怎么写
2014/05/12 职场文书
医院领导班子整改方案
2014/10/01 职场文书
宣传部部长竞选稿
2015/11/21 职场文书
python基础之爬虫入门
2021/05/10 Python
Hive导入csv文件示例
2022/06/25 数据库