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 21 PHP
php auth_http类库进行身份效验
Mar 19 PHP
php面向对象全攻略 (十四) php5接口技术
Sep 30 PHP
php后台多用户权限组思路与实现程序代码分享
Feb 13 PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
Jun 27 PHP
PHP截断标题且兼容utf8和gb2312编码
Sep 22 PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
Feb 13 PHP
PHP中Memcache操作类及用法实例
Dec 12 PHP
php实现用手机关闭计算机(电脑)的方法
Apr 22 PHP
php简单实现批量上传图片的方法
May 09 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
May 05 PHP
PHP Redis扩展无法加载的问题解决方法
Aug 22 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 htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
如何使用PHP获取指定日期所在月的开始日期与结束日期
2013/08/01 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
JavaScript实现QueryString获取GET参数的方法
2013/07/02 Javascript
Js日期选择器并自动加入到输入框中示例代码
2013/08/02 Javascript
JS动态调用方法名示例介绍
2013/12/18 Javascript
用jquery仿做发微博功能示例
2014/04/18 Javascript
常见的jQuery选择器汇总
2014/11/24 Javascript
javascript实现C语言经典程序题
2015/11/29 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
关于JS中二维数组的声明方法
2016/09/24 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
angular过滤器实现排序功能
2017/06/27 Javascript
Node.js 基础教程之全局对象
2017/08/06 Javascript
Vue axios获取token临时令牌封装案例
2020/09/11 Javascript
在Python的Flask框架中实现单元测试的教程
2015/04/20 Python
在Python的Bottle框架中使用微信API的示例
2015/04/23 Python
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
利用pytorch实现对CIFAR-10数据集的分类
2020/01/14 Python
python函数定义和调用过程详解
2020/02/09 Python
python3从网络摄像机解析mjpeg http流的示例
2020/11/13 Python
英国领先的珍珠首饰品牌:Orchira
2016/09/11 全球购物
空字符串(“”)和null的区别
2012/11/13 面试题
大三预备党员入党思想汇报
2014/01/08 职场文书
小学标准化建设汇报材料
2014/08/16 职场文书
2014年助理工程师工作总结
2014/11/14 职场文书
个人租房协议书
2014/11/28 职场文书
幼儿园辞职信
2015/05/13 职场文书
Python中文纠错的简单实现
2021/07/07 Python
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
2022/02/12 Redis
Anaconda安装pytorch和paddle的方法步骤
2022/04/03 Python