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 相关文章推荐
JAVA/JSP学习系列之二
Oct 09 PHP
针对初学PHP者的疑难问答(2)
Oct 09 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
Feb 28 PHP
解析wamp5下虚拟机配置文档
Jun 27 PHP
php截取字符串之截取utf8或gbk编码的中英文字符串示例
Mar 12 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
php语言的7种基本的排序方法
Dec 28 PHP
php中array_unshift()修改数组key注意事项分析
May 16 PHP
Symfony2创建基于域名的路由相关示例
Nov 14 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
Jun 02 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
Sep 29 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
Apr 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
《OVERLORD》第四季,终于等到你!
2020/03/02 日漫
常用的PHP数据库操作方法(MYSQL版)
2011/06/08 PHP
php读取mysql中文数据出现乱码的解决方法
2013/08/16 PHP
php向js函数传参的几种方法
2014/08/10 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
关于JavaScript中name的意义冲突示例介绍
2014/05/29 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
详解Webpack loader 之 file-loader
2018/11/07 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
js实现电灯开关效果
2021/01/19 Javascript
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
python中实现数组和列表读取一列的方法
2018/04/03 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
2020/04/18 Python
Pandas的read_csv函数参数分析详解
2019/07/02 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
用html5实现语音搜索框的方法
2014/03/18 HTML / CSS
梅西百货官网:Macy’s
2020/08/04 全球购物
大专应届生个人的自我评价
2013/11/21 职场文书
财务与信息服务专业推荐信
2013/11/28 职场文书
学生会竞选演讲稿怎么写
2014/08/26 职场文书
2014迎国庆演讲稿
2014/09/19 职场文书
给老师的感谢信
2015/01/20 职场文书
清洁员岗位职责
2015/02/15 职场文书
关于上班时间调整的通知
2015/04/23 职场文书
本科毕业论文致谢词
2015/05/14 职场文书
清明节随笔
2015/08/15 职场文书