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入门速成(2)
Oct 09 PHP
PHP5 面向对象(学习记录)
Dec 02 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
Apr 09 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Aug 31 PHP
一个php生成16位随机数的代码(两种方法)
Sep 16 PHP
PHP+AJAX实现投票功能的方法
Sep 28 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
Mar 07 PHP
php函数传值的引用传递注意事项分析
Jun 25 PHP
php mysql like 实现多关键词搜索的方法
Oct 29 PHP
highchart数据源纵轴json内的值必须是int(详解)
Feb 20 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 PHP
PHP vsprintf()函数格式化字符串操作原理解析
Jul 14 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
提示Trying to clone an uncloneable object of class Imagic的解决
2011/10/27 PHP
php常用文件操作函数汇总
2014/11/22 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
javascript 数据类型转换(parseInt,parseFloat)
2010/07/20 Javascript
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
Nodejs学习笔记之Global Objects全局对象
2015/01/13 NodeJs
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
2016/05/10 Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
2017/09/15 Javascript
Angular2管道Pipe及自定义管道格式数据用法实例分析
2017/11/29 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
2019/06/14 Javascript
laypage.js分页插件使用方法详解
2019/07/27 Javascript
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
Python中的defaultdict模块和namedtuple模块的简单入门指南
2015/04/01 Python
python 写的一个爬虫程序源码
2016/02/28 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
2018/01/09 Python
使用python编写udp协议的ping程序方法
2018/04/22 Python
Flask框架各种常见装饰器示例
2018/07/17 Python
python基于递归解决背包问题详解
2019/07/03 Python
Python pandas用法最全整理
2019/08/04 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
2019/12/19 Python
python怎么提高计算速度
2020/06/11 Python
python爬虫用mongodb的理由
2020/07/28 Python
调用HTML5的Canvas API绘制图形的快速入门指南
2016/06/17 HTML / CSS
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
优秀毕业生推荐信
2013/11/02 职场文书
毕业生写求职信的要点
2014/03/04 职场文书
一分钟演讲稿
2014/04/30 职场文书
庆七一活动总结
2014/08/27 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
道歉信范文
2015/05/12 职场文书
西游降魔篇观后感
2015/06/15 职场文书
法定授权委托证明书
2015/06/18 职场文书
暑期社会实践新闻稿
2015/07/17 职场文书