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 mysql 事务处理回滚操作(附实例)
Aug 05 PHP
php检测iis环境是否支持htaccess的方法
Feb 18 PHP
php下载文件源代码(强制任意文件格式下载)
May 09 PHP
完整删除ecshop中获取店铺信息的API
Dec 24 PHP
php实现的用户查询类实例
Jun 18 PHP
PHP数据分析引擎计算余弦相似度算法示例
Aug 08 PHP
php删除一个路径下的所有文件夹和文件的方法
Feb 07 PHP
PHP大文件分片上传的实现方法
Oct 28 PHP
PHP类与对象后期静态绑定操作实例详解
Dec 20 PHP
PHP设计模式之观察者模式定义与用法分析
Apr 04 PHP
Laravel 修改默认日志文件名称和位置的例子
Oct 17 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
Feb 11 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数组操作汇总 php数组的使用技巧
2011/07/17 PHP
php仿QQ验证码的实例分析
2013/07/01 PHP
php文件夹与文件目录操作函数介绍
2013/09/09 PHP
windows7下安装php的php-ssh2扩展教程
2014/07/04 PHP
PHP处理二进制数据的实现方法
2016/06/13 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
Javascript调试工具(下载)
2007/01/09 Javascript
JavaScript 克隆数组最简单的方法
2009/02/12 Javascript
jQuery获取与设置iframe高度的方法
2016/08/01 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
js实现PC端和移动端刮卡效果
2020/03/27 Javascript
js下拉菜单生成器dropMenu使用方法详解
2017/08/01 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
2017/10/25 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
JQuery Ajax如何实现注册检测用户名
2020/09/25 jQuery
如何在 Vue 表单中处理图片
2021/01/26 Vue.js
Python中列表元素转为数字的方法分析
2016/06/14 Python
python机器学习之神经网络(二)
2017/12/20 Python
Python 错误和异常代码详解
2018/01/29 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
简单易懂Pytorch实战实例VGG深度网络
2019/08/27 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
Python接口测试文件上传实例解析
2020/05/22 Python
pycharm如何使用anaconda中的各种包(操作步骤)
2020/07/31 Python
如何利用CSS3制作3D效果文字具体实现样式
2013/05/02 HTML / CSS
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
英国办公用品商店:Office Outlet
2018/04/04 全球购物
阿玛尼美妆英国官网:Giorgio Armani Beauty英国
2019/03/28 全球购物
元旦获奖感言
2014/03/08 职场文书
运动会横幅标语
2014/06/17 职场文书
教师党员个人剖析材料
2014/09/29 职场文书
公务员年度个人总结
2015/02/12 职场文书
合同纠纷调解书
2015/05/20 职场文书