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模拟SQL Server的两个日期处理函数
Oct 09 PHP
一个比较简单的PHP 分页分组类
Dec 10 PHP
php中session使用示例
Mar 29 PHP
php求正负数数组中连续元素最大值示例
Apr 11 PHP
php图片上传类 附调用方法
May 15 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
May 22 PHP
Yii2.0中的COOKIE和SESSION用法
Aug 12 PHP
PHP 微信扫码支付源代码(推荐)
Nov 03 PHP
PHP实现的XML操作类【XML Library】
Dec 29 PHP
PHP+JS实现的实时搜索提示功能
Mar 13 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
Apr 03 PHP
基于php解决json_encode中文UNICODE转码问题
Nov 10 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
php 生成饼图 三维饼图
2009/09/28 PHP
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
一个简洁实用的PHP缓存类完整实例
2014/07/26 PHP
PHP文件缓存smarty模板应用实例分析
2016/02/26 PHP
微信公众号判断用户是否已关注php代码解析
2016/06/24 PHP
php生成图片缩略图功能示例
2017/02/22 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
使用IE的地址栏来辅助调试Web页脚本
2007/03/08 Javascript
JavaScript验证电子邮箱的函数
2014/08/22 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
2016/03/02 Javascript
AngularJS 过滤器(自带和自建)详解
2016/09/19 Javascript
微信小程序 增、删、改、查操作实例详解
2017/01/13 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
2017/07/18 Javascript
微信小程序开发之IOS和Android兼容的问题
2017/09/26 Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
2018/01/25 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
2018/03/13 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
微信小程序实现左侧滑栏过程解析
2019/08/26 Javascript
vue中使用极验验证码的方法(附demo)
2019/12/04 Javascript
微信小程序实现上传多个文件 超过10个
2020/03/30 Javascript
python 数据的清理行为实例详解
2017/07/12 Python
Python实现自动发送邮件功能
2021/03/02 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
2020/05/29 Python
你不知道的葡萄干处理法、橙蜜处理法、二氧化碳酵母法
2021/03/17 冲泡冲煮
美国网上购买眼镜:Eyeconic
2017/07/29 全球购物
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
什么是事务?事务有哪些性质?
2012/03/11 面试题
优秀教师工作感言
2014/02/16 职场文书
学习交流会主持词
2014/04/01 职场文书
应届硕士毕业生自荐信
2014/05/26 职场文书
努力学习保证书
2015/02/26 职场文书
英语演讲开场白
2015/05/29 职场文书
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python