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+AJAX聊天程序[聊天室]提供下载
Jul 21 PHP
php 正确解码javascript中通过escape编码后的字符
Jan 28 PHP
PHP中数组的三种排序方法分享
May 07 PHP
解析php中的escape函数
Jun 29 PHP
迅速确定php多维数组的深度的方法
Jan 07 PHP
ThinkPHP CURD方法之page方法详解
Jun 18 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
Sep 28 PHP
PHP实现自动识别Restful API的返回内容类型
Feb 07 PHP
在Windows XP下安装Apache+MySQL+PHP环境
Feb 22 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
Apr 01 PHP
PHP封装的非对称加密RSA算法示例
May 28 PHP
tp5框架的增删改查操作示例
Oct 31 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
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
PHP脚本数据库功能详解(上)
2006/10/09 PHP
用PHP读取RSS feed的代码
2008/08/01 PHP
php radio 单选框获取与保持值的实现代码
2010/05/15 PHP
PHP curl 抓取AJAX异步内容示例
2014/09/09 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
2016/06/13 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
PHP扩展类型及安装方式解析
2020/04/27 PHP
document.getElementById为空或不是对象的解决方法
2010/01/24 Javascript
seajs1.3.0源码解析之module依赖有序加载
2012/11/07 Javascript
jQuery遍历Table应用示例
2014/04/09 Javascript
js数组操作常用方法
2014/05/08 Javascript
jQuery淡入淡出元素让其效果更为生动
2014/09/01 Javascript
举例详解JavaScript中Promise的使用
2015/06/24 Javascript
浅谈jQuery中setInterval()方法
2015/07/07 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
2015/09/01 Javascript
JS实现的文字与图片定时切换效果代码
2015/10/06 Javascript
jquery验证邮箱格式是否正确实例讲解
2015/11/16 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
JS加密插件CryptoJS实现的Base64加密示例
2020/08/16 Javascript
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
Vue基本指令实例图文讲解
2021/02/25 Vue.js
seek引发的python文件读写的问题及解决
2019/07/26 Python
python命名空间(namespace)简单介绍
2019/08/10 Python
Python机器学习工具scikit-learn的使用笔记
2021/01/28 Python
用HTML5实现手机摇一摇的功能的教程
2012/10/30 HTML / CSS
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
Nike意大利官网:Nike.com IT
2020/01/19 全球购物
班级学习计划书
2014/04/27 职场文书
2014年青年志愿者工作总结
2014/12/09 职场文书
感恩老师主题班会
2015/08/12 职场文书
2020年元旦晚会策划书模板
2019/12/30 职场文书
MySQL窗口函数的具体使用
2021/11/17 MySQL