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实现小型站点广告管理
Oct 09 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
May 06 PHP
PHP中source #N问题的解决方法
Jan 27 PHP
php编写的一个E-mail验证类
Mar 25 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
Jun 23 PHP
PHP基于单例模式实现的mysql类
Jan 09 PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
May 09 PHP
PHP环境搭建的详细步骤
Jun 30 PHP
thinkPHP订单数字提醒功能的实现方法
Dec 01 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
Aug 16 PHP
Laravel框架实现多数据库连接操作详解
Jul 12 PHP
PHP基于openssl实现非对称加密代码实例
Jun 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
极典R601SW收音机
2021/03/02 无线电
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(五)
2014/06/23 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
PHP抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
PHP基于SimpleXML生成和解析xml的方法示例
2017/07/17 PHP
Js 订制自己的AlertBox(信息提示框)
2009/01/09 Javascript
js本身的局限性 别让javascript做太多事
2010/03/23 Javascript
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
jquery animate实现鼠标放上去显示离开隐藏效果
2013/07/21 Javascript
jQuery获取选中内容及设置元素属性的方法
2014/07/09 Javascript
jQuery 插件封装的方法
2016/11/16 Javascript
jquery实现数字输入框
2017/02/22 Javascript
jQuery加密密码到cookie的实现代码
2017/04/18 jQuery
vue使用axios跨域请求数据问题详解
2017/10/18 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
示例vue 的keep-alive缓存功能的实现
2018/12/13 Javascript
js回到页面指定位置的三种方式
2020/12/17 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
Python3之文件读写操作的实例讲解
2018/01/23 Python
python3爬取淘宝信息代码分析
2018/02/10 Python
关于django 数据库迁移(migrate)应该知道的一些事
2018/05/27 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
详解Python3中的 input() 函数
2020/03/18 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
2020/07/06 Python
编码实现字符串转整型的函数
2012/06/02 面试题
党员违纪检讨书
2014/02/18 职场文书
清明节扫墓活动方案
2014/03/02 职场文书
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
企业文化建设实施方案
2014/03/22 职场文书
药剂专业自荐书
2014/06/20 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers
基于PostgreSQL/openGauss 的分布式数据库解决方案
2021/12/06 PostgreSQL
python保存图片的四个常用方法
2022/02/28 Python
Python可视化神器pyecharts之绘制箱形图
2022/07/07 Python