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 相关文章推荐
模仿OSO的论坛(五)
Oct 09 PHP
一个PHP模板,主要想体现一下思路
Dec 25 PHP
五个PHP程序员工具
May 26 PHP
服务器web工具 php环境下
Dec 29 PHP
PHP的博客ping服务代码
Feb 04 PHP
php调用c接口无错版介绍
Mar 11 PHP
PHP中new static()与new self()的区别异同分析
Aug 22 PHP
php实现singleton()单例模式实例
Nov 06 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
Jul 15 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
Sep 21 PHP
PHP连接MYSQL数据库的3种常用方法
Feb 27 PHP
php实现留言板功能(会话控制)
May 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集成环境XAMPP的安装与配置
2018/11/13 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
基于JQuery的asp.net树实现代码
2010/11/30 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
JavaScript中的setUTCDate()方法使用详解
2015/06/11 Javascript
JavaScript原生对象常用方法总结(推荐)
2016/05/13 Javascript
表单中单选框添加选项和移除选项
2016/07/04 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
2016/10/07 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
javaScript+turn.js实现图书翻页效果实例代码
2017/02/16 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
2017/07/28 Javascript
JavaScript折半查找(二分查找)算法原理与实现方法示例
2018/08/06 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
详解javascript设计模式三:代理模式
2019/03/25 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
js实现橱窗展示效果
2020/01/11 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
js+canvas实现刮刮奖功能
2020/09/13 Javascript
[51:17]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
python下os模块强大的重命名方法renames详解
2017/03/07 Python
zookeeper python接口实例详解
2018/01/18 Python
OpenCV 轮廓检测的实现方法
2019/07/03 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
《美丽的小路》教学反思
2014/02/26 职场文书
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
超越自我演讲稿
2014/05/21 职场文书
世界读书日的活动方案
2014/08/20 职场文书
中小企业员工手册范本
2015/05/14 职场文书
国庆节新闻稿
2015/07/17 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
Mysql数据库索引面试题(程序员基础技能)
2021/05/31 MySQL
javascript拖曳互换div的位置实现示例
2021/06/28 Javascript
海弦WR-800F
2022/04/05 无线电