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调用数据库的存贮过程
Oct 09 PHP
PHP 程序员的调试技术小结
Nov 15 PHP
《PHP编程最快明白》第七讲:php图片验证码与缩略图
Nov 01 PHP
PHP中foreach循环中使用引用要注意的地方
Jan 02 PHP
比较discuz和ecshop的截取字符串函数php版
Sep 03 PHP
php全角字符转换为半角函数
Feb 07 PHP
CodeIgniter控制器之业务逻辑实例分析
Jan 20 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
Dec 14 PHP
PHP7下协程的实现方法详解
Dec 17 PHP
php JWT在web端中的使用方法教程
Sep 06 PHP
PHP操作XML中XPath的应用示例
Jul 04 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 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
人工智能开始玩《星际争霸2》 你的操作跟得上吗?
2017/08/11 星际争霸
PHP 数组遍历顺序理解
2009/09/09 PHP
yii的CURD操作实例详解
2014/12/04 PHP
php实现网页缓存的工具类分享
2015/07/14 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
PHP使用SOAP扩展实现WebService的方法
2016/04/01 PHP
用JQuery 实现AJAX加载XML并解析的脚本
2009/07/25 Javascript
js下用层来实现select的title提示属性
2010/02/23 Javascript
Jquery显示、隐藏元素以及添加删除样式
2013/08/09 Javascript
一个简单的动态加载js和css的jquery代码
2014/09/01 Javascript
JS制作简单的三级联动
2015/03/18 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
详解jQuery中的isPlainObject()使用方法
2018/02/27 jQuery
Angular父组件调用子组件的方法
2018/04/02 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
python在linux中输出带颜色的文字的方法
2014/06/19 Python
python打开网页和暂停实例
2014/09/30 Python
python实现自动更换ip的方法
2015/05/05 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
详解Python中的动态属性和特性
2018/04/07 Python
详解Python最长公共子串和最长公共子序列的实现
2018/07/07 Python
基于Python函数和变量名解析
2019/07/19 Python
关于ResNeXt网络的pytorch实现
2020/01/14 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
利用CSS3把图片变成灰色模式的实例代码
2016/09/06 HTML / CSS
英国大码女性时装零售商:Evans
2018/08/29 全球购物
Kiehl’s科颜氏西班牙官方网站:源自美国的植物护肤品牌
2020/02/22 全球购物
《动手做做看》教学反思
2014/04/09 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
2014年稽查工作总结
2014/12/20 职场文书
村党组织公开承诺书
2015/04/30 职场文书
会议室使用管理制度
2015/08/06 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
代码复现python目标检测yolo3详解预测
2022/05/06 Python