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 相关文章推荐
第十三节 对象串行化 [13]
Oct 09 PHP
PHP个人网站架设连环讲(二)
Oct 09 PHP
php目录管理函数小结
Sep 10 PHP
php 接口类与抽象类的实际作用
Nov 26 PHP
PHP 文件上传全攻略
Apr 28 PHP
php记录代码执行时间(实现代码)
Jul 05 PHP
mac下Apache + MySql + PHP搭建网站开发环境
Jun 02 PHP
PHP内置的Math函数效率测试
Dec 01 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
Mar 18 PHP
yum命令安装php7和相关扩展
Jul 04 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
Dec 07 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
Mar 30 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
第二节--PHP5 的对象模型
2006/11/16 PHP
php在线打包程序源码
2008/07/27 PHP
批量去除PHP文件中bom的PHP代码
2012/03/13 PHP
简单的php文件上传(实例)
2013/10/27 PHP
整理php防注入和XSS攻击通用过滤
2015/09/13 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
JavaScript的public、private和privileged模式
2009/12/28 Javascript
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
2013/06/09 Javascript
jquery五角星评分插件示例分享
2014/02/21 Javascript
jQuery中append()方法用法实例
2015/01/08 Javascript
浅谈javascript中的instanceof和typeof
2015/02/27 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
jQuery动态添加
2016/04/07 Javascript
实现一个完整的Node.js RESTful API的示例
2017/09/29 Javascript
彻底弄懂 JavaScript 执行机制
2018/10/23 Javascript
Node.js assert断言原理与用法分析
2019/01/04 Javascript
JavaScript Canvas编写炫彩的网页时钟
2019/10/16 Javascript
基于ts的动态接口数据配置的详解
2019/12/18 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
2020/12/28 Javascript
python通过urllib2获取带有中文参数url内容的方法
2015/03/13 Python
Python中的ConfigParser模块使用详解
2015/05/04 Python
Python中字典的基本知识初步介绍
2015/05/21 Python
python 获取url中的参数列表实例
2018/12/18 Python
Python pycharm 同时加载多个项目的方法
2019/01/17 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
django日志默认打印request请求信息的方法示例
2020/05/17 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
美国内衣第一品牌:Hanes(恒适)
2016/07/29 全球购物
中国第一家杂志折扣订阅网:杂志铺
2016/08/30 全球购物
屈臣氏俄罗斯在线商店:Watsons俄罗斯
2020/08/03 全球购物
几道PHP的面试题
2012/05/19 面试题
小学校长竞聘演讲稿
2014/05/16 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书
Django框架中模型的用法
2022/06/10 Python