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 相关文章推荐
探讨:web上存漏洞及原理分析、防范方法
Jun 29 PHP
ThinkPHP CURD方法之where方法详解
Jun 18 PHP
php图片处理函数获取类型及扩展名实例
Nov 19 PHP
PHP中你应该知道的require()文件包含的正确用法
Jun 12 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
Oct 16 PHP
学习php设计模式 php实现状态模式
Dec 07 PHP
PHP7正式版测试,性能惊艳!
Dec 08 PHP
PHP中的session安全吗?
Jan 22 PHP
PHP数据的提交与过滤基本操作实例详解
Nov 11 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
YII框架页面缓存操作示例
Apr 29 PHP
PHP实现简单登录界面
Oct 23 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的autoload自动加载机制使用说明
2010/12/28 PHP
PHP Class&Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
PHP多进程编程实例详解
2017/07/19 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
IE6下通过a标签点击切换图片的问题
2010/11/14 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
用javascript删除当前行,添加行(示例代码)
2013/11/25 Javascript
javascript中createElement的两种创建方式
2015/05/14 Javascript
浅谈JavaScript字符串与数组
2015/06/03 Javascript
javascript背景时钟实现方法
2015/06/18 Javascript
Javascript随机标签云代码实例
2016/06/21 Javascript
js模态对话框使用方法详解
2017/02/16 Javascript
jQuery设计思想
2017/03/07 Javascript
详解AngularJS 路由 resolve用法
2017/04/24 Javascript
Nodejs中crypto模块的安全知识讲解
2018/01/03 NodeJs
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
javascript实现拼图游戏
2021/01/29 Javascript
利用一个简单的例子窥探CPython内核的运行机制
2015/03/30 Python
python实现批量改文件名称的方法
2015/05/25 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
python随机在一张图像上截取任意大小图片的方法
2019/01/24 Python
Pycharm+Python工程,引用子模块的实现
2020/03/09 Python
详解Python设计模式之策略模式
2020/06/15 Python
如何使用python自带IDLE的几种方法
2020/10/10 Python
一文读懂python Scrapy爬虫框架
2021/02/24 Python
“型”走纽约上东区:Sam Edelman
2017/04/02 全球购物
哈利波特商店:Harry Potter Shop
2018/11/30 全球购物
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
thinkphp5 redis缓存新增方法实例讲解
2021/03/24 PHP
机械设计职业生涯规划书
2013/12/27 职场文书
行政文秘岗位职责范本
2014/02/10 职场文书
超市优秀员工事迹材料
2014/05/01 职场文书
新郎接新娘保证书
2015/05/08 职场文书
投诉书范文
2015/07/02 职场文书
python脚本框架webpy模板赋值实现
2021/11/20 Python