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 md5下16位和32位的实现代码
Apr 09 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
Sep 19 PHP
深入php之规范编程命名小结
May 15 PHP
ThinkPHP3.2.2的插件控制器功能简述
Jul 09 PHP
yii2.0实现pathinfo的形式访问的配置方法
Apr 06 PHP
php使用正则表达式去掉html中的注释方法
Nov 03 PHP
php实现URL加密解密的方法
Nov 17 PHP
php+ajax+json 详解及实例代码
Dec 12 PHP
php简单随机字符串生成方法示例
Apr 19 PHP
phpstudy的php版本自由修改的方法
Oct 18 PHP
PHP getNamespaces()函数讲解
Feb 03 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
May 27 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中Session可能会引起并发问题
2015/06/26 PHP
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
Jquery中增加参数与Json转换代码
2009/11/20 Javascript
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
2010/11/28 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
JQuery实现简单的服务器轮询效果实例
2016/03/31 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
JavaScript中的惰性载入函数及优势
2020/02/18 Javascript
JavaScript实现手风琴效果
2021/02/18 Javascript
给Python初学者的一些编程技巧
2015/04/03 Python
python smtplib模块发送SSL/TLS安全邮件实例
2015/04/08 Python
用Python登录Gmail并发送Gmail邮件的教程
2015/04/17 Python
pygame播放音乐的方法
2015/05/19 Python
python追加元素到列表的方法
2015/07/28 Python
使用Python神器对付12306变态验证码
2016/01/05 Python
Pytorch入门之mnist分类实例
2018/04/14 Python
Python for循环生成列表的实例
2018/06/15 Python
详解Python基础random模块随机数的生成
2019/03/23 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
python要安装在哪个盘
2020/06/15 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
html5+css3之动画在webapp中的应用
2014/11/21 HTML / CSS
使用CSS3配合IE滤镜实现渐变和投影的效果
2015/09/06 HTML / CSS
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
C/C++程序员常见面试题二
2015/11/19 面试题
互联网创业计划书的书写步骤
2014/01/28 职场文书
机关副主任个人四风问题整改措施
2014/09/26 职场文书
苏州园林导游词
2015/02/03 职场文书
2015迎新晚会开场白
2015/05/29 职场文书
2019年图书室自查报告范本
2019/10/12 职场文书
Win10 Anaconda安装python-pcl
2022/04/29 Servers