php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法


Posted in PHP onJuly 12, 2016

本文实例讲述了php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法。分享给大家供大家参考,具体如下:

由于出于安全考虑,参数传递的时候需要进行加密和解密,一个比较简单的方法是直接使用php中的函数mcrypt_encrypt、mcrypt_decrypt,一个加密,一个解密,但是问题又出现了,这个加密过程中会产生一些使url混乱的符号,于是在加密后对加密字符再进行一次处理,然后多了一一次解析:

$key = "miyao";//密钥
$string="jiami"//需要加密的字符
//自带的加密函数
$crypttext = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
$encrypted =trim($this->safe_b64encode($crypttext));//对特殊字符进行处理
$key="miyao"
$crypttexttb=safe_b64decode($encrypted)//对特殊字符解析
$decryptedtb = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($crypttexttb), MCRYPT_MODE_CBC, md5(md5($key))), "\0")//解密函数
//处理特殊字符
public function safe_b64encode($string) {
    $data = base64_encode($string);
    $data = str_replace(array('+','/','='),array('-','_',''),$data);
    return $data;
}
//解析特殊字符
public function safe_b64decode($string) {
    $data = str_replace(array('-','_'),array('+','/'),$string);
    $mod4 = strlen($data) % 4;
    if ($mod4) {
      $data .= substr('====', $mod4);
    }
    return base64_decode($data);
}

PHP 相关文章推荐
PHP邮件专题
Oct 09 PHP
PHP下MAIL的另一解决方案
Oct 09 PHP
JS实现php的伪分页
May 25 PHP
APACHE的AcceptPathInfo指令使用介绍
Jan 18 PHP
PHP 获取文件权限函数介绍
Jul 11 PHP
PHP 读取和编写 XML
Nov 19 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
Nov 05 PHP
php指定长度分割字符串str_split函数用法示例
Jan 30 PHP
Laravel模型事件的实现原理详解
Mar 14 PHP
PHP解析url并得到url参数方法总结
Oct 11 PHP
PHP explode()函数用法讲解
Feb 15 PHP
php字符串截取函数mb_substr用法实例分析
Jun 25 PHP
PHP简单实现DES加密解密的方法
Jul 12 #PHP
微信支付开发交易通知实例
Jul 12 #PHP
php实现的debug log日志操作类实例
Jul 12 #PHP
PHP数据库表操作的封装类及用法实例详解
Jul 12 #PHP
WordPress过滤垃圾评论的几种主要方法小结
Jul 11 #PHP
php处理带有中文URL的方法
Jul 11 #PHP
PHP实现JS中escape与unescape的方法
Jul 11 #PHP
You might like
如何在旧的PHP系统中使用PHP 5.3之后的库
2015/12/02 PHP
CI框架数据库查询之join用法分析
2016/05/18 PHP
yii通过小物件生成view的方法
2016/10/08 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
基于jquery的文字向上跑动类似跑马灯的效果
2014/09/22 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
jQuery中$.ajax()方法参数解析
2016/10/22 Javascript
vue2.0+webpack环境的构造过程
2016/11/08 Javascript
适用于手机端的jQuery图片滑块动画
2016/12/09 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
微信小程序中hidden不生效原因的解决办法
2017/04/26 Javascript
JS根据Unix时间戳显示发布时间是多久前【项目实测】
2019/07/10 Javascript
vue中npm包全局安装和局部安装过程
2019/09/03 Javascript
微信小程序用户拒绝授权的处理方法详解
2019/09/20 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
2020/07/21 Javascript
openlayers4.6.5实现距离量测和面积量测
2020/09/25 Javascript
JS获取一个字符串中指定字符串第n次出现的位置
2021/02/10 Javascript
[04:49]期待西雅图之战 2016国际邀请赛中国区预选赛WINGS战队赛后采访
2016/06/29 DOTA
[00:13]天涯墨客二技能展示
2018/08/25 DOTA
浅谈pycharm下找不到sqlalchemy的问题
2018/12/03 Python
Python制作动态字符图的实例
2019/01/27 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
Selenium使用Chrome模拟手机浏览器方法解析
2020/04/10 Python
CSS3五个技巧给你的网站带来出色的效果
2009/04/02 HTML / CSS
西班牙在线光学:Visual-Click
2020/06/22 全球购物
How to spawning asynchronous work in J2EE
2016/08/29 面试题
学生安全教育材料
2014/02/14 职场文书
2014年学习全国道德模范事迹思想汇报
2014/09/15 职场文书
检讨书怎么写
2015/01/23 职场文书
2015年幼儿园个人工作总结
2015/04/25 职场文书
酒会开场白大全
2015/06/01 职场文书
运动会三级跳加油稿
2015/07/21 职场文书
团委副书记工作总结
2015/08/14 职场文书
女方家长婚礼答谢词
2015/09/29 职场文书
nginx lua 操作 mysql
2022/05/15 Servers