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基础知识:函数基础知识
Dec 13 PHP
Smarty结合Ajax实现无刷新留言本实例
Jan 02 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
May 18 PHP
理解PHP中的stdClass类
Apr 18 PHP
ThinkPHP多表联合查询的常用方法
Mar 24 PHP
php 使用array函数实现分页
Feb 13 PHP
php中get_cfg_var()和ini_get()的用法及区别
Mar 04 PHP
php保存信息到当前Session的方法
Mar 16 PHP
PHP实现的DES加密解密实例代码
Apr 06 PHP
thinkPHP交易详情查询功能详解
Dec 02 PHP
Windows下php+mysql5.7配置教程
May 16 PHP
PHP生成推广海报的方法分享
Apr 22 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获取http请求的头信息实现步骤
2012/12/16 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
ThinkPHP自动填充实现无限级分类的方法
2014/08/22 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
php压缩文件夹最新版
2018/07/18 PHP
PHP简单验证码功能机制实例详解
2019/03/27 PHP
js监听表单value的修改同步问题,跨浏览器支持
2009/12/31 Javascript
js中把JSON字符串转换成JSON对象最好的方法
2014/03/21 Javascript
node.js [superAgent] 请求使用示例
2015/03/13 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
2016/04/17 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
2016/07/09 Javascript
用NodeJS实现批量查询地理位置的经纬度接口
2016/08/16 NodeJs
jquery插入兄弟节点的操作方法
2016/12/07 Javascript
关于webpack代码拆分的解析
2017/07/20 Javascript
微信小程序登录换取token的教程
2018/05/31 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
koa中间件核心(koa-compose)源码解读分析
2020/06/15 Javascript
[54:24]Optic vs TNC 2018国际邀请赛小组赛BO2 第二场
2018/08/18 DOTA
[03:42]2018完美盛典-《加冕》
2018/12/16 DOTA
Python 详解基本语法_函数_返回值
2017/01/22 Python
Python安装图文教程 Pycharm安装教程
2018/03/27 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
详解Python字典的操作
2019/03/04 Python
python tkinter组件使用详解
2019/09/16 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
2019/09/20 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
2020/11/10 Python
10分钟理解CSS3 FlexBox弹性布局
2018/12/20 HTML / CSS
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
护士自我鉴定总结
2014/03/24 职场文书
乡文化站暑期培训方案
2014/08/28 职场文书
物流业务员岗位职责
2015/04/03 职场文书
在职证明书模板
2015/06/15 职场文书
单位证明范文
2015/06/18 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书