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脚本的10个技巧(6)
Oct 09 PHP
解析dedeCMS验证码的实现代码
Jun 07 PHP
使用PHP备份MYSQL数据的多种方法
Jan 15 PHP
成为好程序员必须避免的5个坏习惯
Jul 04 PHP
完善CodeIgniter在IDE中代码提示功能的方法
Jul 19 PHP
php通过session防url攻击方法
Dec 10 PHP
php实现比较全的数据库操作类
Jun 18 PHP
PHP程序中使用adodb连接不同数据库的代码实例
Dec 19 PHP
PHP中Restful api 错误提示返回值实现思路
Apr 12 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
Mar 13 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
May 13 PHP
php的lavarel框架中join和orWhere的用法
Dec 28 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/08/05 PHP
使用PHP函数scandir排除特定目录
2014/06/12 PHP
JQuery与Ajax常用代码实现对比
2009/10/03 Javascript
JQuery的ajax获取数据后的处理总结(html,xml,json)
2010/07/14 Javascript
js各种验证文本框输入格式(正则表达式)
2010/10/22 Javascript
jQuery阻止冒泡和HTML默认操作
2010/11/17 Javascript
js中reverse函数的用法详解
2013/12/26 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
2016/05/17 Javascript
BootStrap实现树形目录组件代码详解
2016/06/21 Javascript
Javascript对象字面量的理解
2016/06/22 Javascript
jQuery过滤选择器经典应用
2016/08/18 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
jquery分页优化操作实例分析
2019/08/23 jQuery
[00:32]2018DOTA2亚洲邀请赛Liquid出场
2018/04/03 DOTA
Python单链表的简单实现方法
2014/09/23 Python
Python CSV模块使用实例
2015/04/09 Python
利用Celery实现Django博客PV统计功能详解
2017/05/08 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
Python3解释器知识点总结
2019/02/19 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
Python 3.8中实现functools.cached_property功能
2019/05/29 Python
python爬虫 urllib模块发起post请求过程解析
2019/08/20 Python
Python从文件中读取指定的行以及在文件指定位置写入
2019/09/06 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
python 基于UDP协议套接字通信的实现
2021/01/22 Python
用HTML5 实现橡皮擦的涂抹效果的教程
2015/05/11 HTML / CSS
美国电视购物HSN官网:HSN
2016/09/07 全球购物
Myprotein台湾官方网站:全球领先的运动营养品牌
2018/12/10 全球购物
土地转让协议书
2014/04/15 职场文书
班级学习计划书
2014/04/27 职场文书
工作失职检讨书500字
2014/10/17 职场文书
大学生自我评价范文
2015/03/03 职场文书
感恩主题班会教案
2015/08/12 职场文书
物业管理交接协议书
2016/03/24 职场文书