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中使用Oracle数据库(2)
Oct 09 PHP
PHP+Tidy-完美的XHTML纠错+过滤
Apr 10 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
Jun 05 PHP
php simplexmlElement操作xml的命名空间实现代码
Jan 04 PHP
PHP 八种基本的数据类型小结
Jun 01 PHP
求PHP数组最大值,最小值的代码
Oct 31 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
Oct 01 PHP
php header函数的常用http头设置
Jun 25 PHP
php使用APC实现实时上传进度条功能
Oct 26 PHP
ThinkPHP3.2.1图片验证码实现方法
Aug 19 PHP
php 获取xml接口数据的处理方法
May 31 PHP
laravel 根据不同组织加载不同视图的实现
Oct 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
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
PHP编程网上资源导航
2006/10/09 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
浅析ajax请求json数据并用js解析(示例分析)
2013/07/13 Javascript
Javascript学习指南
2014/12/01 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
javascript实现点击按钮让DIV层弹性移动的方法
2015/02/24 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
2016/06/17 Javascript
JavaScript实现汉字转换为拼音的库文件示例
2016/12/22 Javascript
bootstrap手风琴制作方法详解
2017/01/11 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
vue中过滤器filter的讲解
2019/01/21 Javascript
javascript实现切割轮播效果
2019/11/28 Javascript
Vue常用的全选/反选的示例代码
2020/02/19 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
python中合并两个文本文件并按照姓名首字母排序的例子
2014/04/25 Python
Python增量循环删除MySQL表数据的方法
2016/09/23 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
2017/08/21 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
python定时复制远程文件夹中所有文件
2019/04/30 Python
Django urls.py重构及参数传递详解
2019/07/23 Python
python输出决策树图形的例子
2019/08/09 Python
python实现数据清洗(缺失值与异常值处理)
2019/12/02 Python
重写django的model下的objects模型管理器方式
2020/05/15 Python
python实现马丁策略回测3000只股票的实例代码
2021/01/22 Python
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
Timberland澳大利亚官网:全球领先的户外品牌
2019/12/10 全球购物
BIFFI美国站:意大利BIFFI BOUTIQUES豪华多品牌时装零售公司
2020/02/11 全球购物
市场部业务员岗位职责
2014/04/02 职场文书
产品开发计划书
2014/04/27 职场文书
2014年公务员退休工资改革方案
2014/10/01 职场文书
负责培养人意见
2015/06/05 职场文书
公司员工奖惩制度
2015/08/04 职场文书
Python Flask请求扩展与中间件相关知识总结
2021/06/11 Python