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读取xml实例代码
Jan 28 PHP
PHP 第一节 php简介
Apr 28 PHP
探讨:php中在foreach中使用foreach ($arr as &$value) 这种类型的解释
Jun 24 PHP
PHP实现变色验证码实例
Jan 06 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
Jun 26 PHP
PHP清除数组中所有字符串两端空格的方法
Oct 20 PHP
PHP实现采集抓取淘宝网单个商品信息
Jan 08 PHP
PHP+redis实现添加处理投票的方法
Nov 14 PHP
Yii2下点击验证码的切换实例代码
Mar 14 PHP
php 使用 __call实现重载功能示例
Nov 18 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 PHP
Laravel 修改验证异常的响应格式实例代码详解
May 25 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和editplus正则表达式去除空白行
2015/04/17 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
PDO::errorCode讲解
2019/01/28 PHP
JS实现的倒计时效果实例(2则实例)
2015/12/23 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
拥Bootstrap入怀——导航栏篇
2016/05/30 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
2017/03/31 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
使用 Javascript 实现浏览器推送提醒功能的示例
2017/11/03 Javascript
ios设备中angularjs无法改变页面title的解决方法
2018/09/13 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
微信小程序dom操作的替代思路实例分析
2018/12/06 Javascript
vue实现滑动到底部加载更多效果
2020/10/27 Javascript
使用localStorage替代cookie做本地存储
2019/09/25 Javascript
浅谈Vue.set实际上是什么
2019/10/17 Javascript
js利用iframe实现选项卡效果
2020/08/09 Javascript
vue中使用腾讯云Im的示例
2020/10/23 Javascript
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
Python Requests库基本用法示例
2018/08/20 Python
python 切换root 执行命令的方法
2019/01/19 Python
Python3中列表list合并的四种方法
2019/04/19 Python
Selenium元素定位的30种方式(史上最全)
2020/05/11 Python
Python常用数字处理基本操作汇总
2020/09/10 Python
Wallis官网:英国女装零售商
2020/01/21 全球购物
英国婴儿产品专家:Samuel Johnston
2020/04/20 全球购物
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
解除处分决定书
2015/06/25 职场文书
学校少先队工作总结
2015/08/12 职场文书
2016年社区文体活动总结
2016/04/06 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书
Nginx内网单机反向代理的实现
2021/11/07 Servers