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开发中常用的三个表单验证函数使用小结
Mar 03 PHP
晋城吧对DiscuzX进行的前端优化要点
Sep 05 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
Jul 03 PHP
php&amp;mysql 日期操作小记
Feb 27 PHP
PHP取余函数介绍MOD(x,y)与x%y
May 15 PHP
PHP写日志的实现方法
Nov 05 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
Mar 26 PHP
用PHP生成excel文件到指定目录
Jun 22 PHP
对比分析php中Cookie与Session的异同
Feb 19 PHP
thinkPHP5.0框架URL访问方法详解
Mar 18 PHP
PHP生成指定范围内的N个不重复的随机数
Mar 18 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
Apr 07 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脚本数据库功能详解(下)
2006/10/09 PHP
浅析SVN常见问题及解决方法
2013/06/21 PHP
一个简单的PHP验证码实现代码
2014/05/10 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
2014/08/15 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
php session实现多级目录存放实现代码
2016/02/03 PHP
PHP图片加水印实现方法
2016/05/06 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
详解Yii2 之 生成 URL 的方法
2017/06/16 PHP
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
2011/11/15 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
javascript倒计时效果实现
2015/11/12 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
微信小程序实战之自定义模态弹窗(8)
2017/04/18 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
python中的常量和变量代码详解
2018/07/25 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
python爬取网易云音乐热歌榜实例代码
2020/08/07 Python
程序运行正确, 但退出时却"core dump"了,怎么回事
2014/02/19 面试题
求职简历中的自我评价分享
2013/12/08 职场文书
JAVA程序员自荐书
2014/01/30 职场文书
银行爱岗敬业演讲稿
2014/05/05 职场文书
11.9消防日宣传标语
2014/10/08 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
学生病假条范文
2015/08/17 职场文书
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python
springboot中一些比较常用的注解总结
2021/06/11 Java/Android
JavaScript高级程序设计之变量与作用域
2021/11/17 Javascript
基于Python实现股票收益率分析
2022/04/02 Python
openstack云计算keystone组件工作介绍
2022/04/20 Servers