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中养成7个面向对象的好习惯
Jan 28 PHP
PHP调用Linux的命令行执行文件压缩命令
Jan 27 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
Jun 09 PHP
sae使用smarty模板的方法
Dec 17 PHP
destoon公司主页模板风格的添加方法
Jun 20 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
Nov 20 PHP
深入探究PHP的多进程编程方法
Aug 18 PHP
php常量详细解析
Oct 27 PHP
YII框架中使用memcache的方法详解
Aug 02 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
Sep 28 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
Aug 21 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
Jul 09 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自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
php 魔术方法详解
2014/11/11 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
javscript对象原型的一些看法
2010/09/19 Javascript
打印json对象的内容及JSON.stringify函数应用
2013/03/29 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
使用时间戳解决ie缓存的问题
2014/08/20 Javascript
JS继承用法实例分析
2015/02/05 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
2016/05/13 Javascript
原生JS实现首页进度加载动画
2016/09/14 Javascript
使用Ajax与服务器(JSON)通信实例
2016/11/04 Javascript
微信小程序实现动态设置页面标题的方法【附源码下载】
2017/11/29 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
2019/02/27 Javascript
layer.open组件获取弹出层页面变量、函数的实例
2019/09/25 Javascript
JS实现容器模块左右拖动效果
2020/01/14 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
HTML元素拖拽功能实现的完整实例
2020/12/04 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
2020/12/30 Vue.js
python对url格式解析的方法
2015/05/13 Python
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
基于python的列表list和集合set操作
2019/11/24 Python
python 调用API接口 获取和解析 Json数据
2020/09/28 Python
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
HTML table 表格边框的实现思路
2019/10/12 HTML / CSS
精选奢华:THE LIST
2019/09/05 全球购物
物业客服专员岗位职责
2013/11/30 职场文书
建筑专业毕业生自荐信
2014/05/25 职场文书
就业协议书样本
2014/08/20 职场文书
中学教师暑期培训方案
2014/08/27 职场文书
网上祭先烈心得体会
2014/09/01 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js