PHP可逆加密/解密函数分享
2015-01-24信息快讯网
很多项目的会员系统,都要求要有记住登录功能,在通过cookies实现功能是,由于要将客户信息直接保存到cookies,如果直接写入cookies势必会带来安全隐患,因此通过可逆加密后再保存到cookies相对就安全了
函数源码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函数array_flip()在重复数组元素删除中的作用
PHP数组排序函数合集 以及它们之间的联系分析
基于php常用函数总结(数组,字符串,时间,文件操作)
php连接函数implode与分割explode的深入解析
解析strtr函数的效率问题
解析如何用php screw加密php源代码
php_screw 1.5:php加密: 安装与使用详解
具有时效性的php加密解密函数代码
一个简单的php加密解密函数(动态加密)
深入PHP数据加密详解
PHP fopen 读取带中文URL地址的一点见解
将时间以距今多久的形式表示,PHP,js双版本
PHP获取网址的顶级域名函数代码
Thinkphp模板中使用自定义函数的方法
PHP管理内存函数 memory_get_usage()使用介绍
PHP UTF8中文字符截断函数代码
php中将汉字转换成拼音的函数代码
php中3des加密代码(完全与.net中的兼容)
通过PHP的内置函数,通过DES算法对数据加密和解密
PHP的加密方式及原理
php实现rc4加密算法代码
php 的加密函数 md5,crypt,base64_encode 等使用介绍