PHP可逆加密/解密函数分享


Posted in PHP onSeptember 25, 2012

函数源码

function encrypt($data, $key) { 
$prep_code = serialize($data); 
$block = mcrypt_get_block_size('des', 'ecb'); 
if (($pad = $block - (strlen($prep_code) % $block)) < $block) { 
$prep_code .= str_repeat(chr($pad), $pad); 
} 
$encrypt = mcrypt_encrypt(MCRYPT_DES, $key, $prep_code, MCRYPT_MODE_ECB); 
return base64_encode($encrypt); 
} function decrypt($str, $key) { 
$str = base64_decode($str); 
$str = mcrypt_decrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB); 
$block = mcrypt_get_block_size('des', 'ecb'); 
$pad = ord($str[($len = strlen($str)) - 1]); 
if ($pad && $pad < $block && preg_match('/' . chr($pad) . '{' . $pad . '}$/', $str)) { 
$str = substr($str, 0, strlen($str) - $pad); 
} 
return unserialize($str); 
}

调用函数
$key = 'okyo.cn'; 
$data = array('id' => 100, 'username' => 'customer', 'password' => 'e10adc3949ba59abbe56e057f20f883e'); 
$snarr = serialize($data); 
$en = encrypt($data, $key); 
$de = decrypt($en, $key); 
echo "加密原型:"; 
print_r($data); 
echo " 
密钥:$key 加密结果:$en 
解密结果:"; 
print_r($de);
PHP 相关文章推荐
隐性调用php程序的方法
Mar 09 PHP
php Hex RGB颜色值互换的使用
May 10 PHP
解析php中call_user_func_array的作用
Jun 07 PHP
php unset全局变量运用问题的深入解析
Jun 17 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
Apr 29 PHP
thinkphp的URL路由规则与配置实例
Nov 26 PHP
使用php转义输出HTML到JavaScript
Mar 27 PHP
yii权限控制的方法(三种方法)
Dec 28 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
Dec 24 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
Aug 01 PHP
php微信公众号开发之答题连闯三关
Oct 20 PHP
Laravel框架集合用法实例浅析
May 14 PHP
将时间以距今多久的形式表示,PHP,js双版本
Sep 25 #PHP
PHP中空字符串介绍0、null、empty和false之间的关系
Sep 25 #PHP
PHP获取网址的顶级域名函数代码
Sep 24 #PHP
ThinkPHP关联模型操作实例分析
Sep 23 #PHP
Linux下CoreSeek及PHP扩展模块的安装
Sep 23 #PHP
Thinkphp模板中使用自定义函数的方法
Sep 23 #PHP
如何获知PHP程序占用多少内存(memory_get_usage)
Sep 23 #PHP
You might like
使用无限生命期Session的方法
2006/10/09 PHP
杏林同学录(二)
2006/10/09 PHP
THINKPHP+JS实现缩放图片式截图的实现
2010/03/07 PHP
基于Laravel 5.2 regex验证的正确写法
2019/09/29 PHP
php7下的filesize函数
2019/09/30 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
JavaScript 创建运动框架的实现代码
2013/05/08 Javascript
js获得网页背景色和字体色的方法
2014/03/21 Javascript
jQuery中:enabled选择器用法实例
2015/01/04 Javascript
详细解密jsonp跨域请求
2015/04/15 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
JavaScript实现简单获取当前网页网址的方法
2015/11/09 Javascript
js格式化时间的方法
2015/12/18 Javascript
详解JavaScript UTC时间转换方法
2016/01/07 Javascript
基于javascript实现样式清新图片轮播特效
2016/03/30 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
vue基于Vue2.0和高德地图的地图组件实例
2017/04/28 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
2018/02/06 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
python实现的自动发送消息功能详解
2019/08/15 Python
python制作抽奖程序代码详解
2021/01/15 Python
python 基于opencv去除图片阴影
2021/01/26 Python
详解移动端html5页面长按实现高亮全选文本内容的兼容解决方案
2016/12/03 HTML / CSS
会计自荐书
2013/12/02 职场文书
学习委员自我鉴定
2014/01/13 职场文书
关于人生的感言
2014/01/17 职场文书
三严三实对照检查材料
2014/08/25 职场文书
男方婚前保证书
2015/02/28 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
python实现层次聚类的方法
2021/11/01 Python