PHP加密解密可逆函数分享 - php语言 -

PHP加密解密可逆函数分享

时间:2012-10-04 14:29:03   来源:   评论:加载中...   点击:加载中...
很多项目的会员系统,都要求要有记住登录功能,在通过cookies实现功能是,由于要将客户信息直接保存到cookies,如果直接写入cookies势必会...

很多项目的会员系统,都要求要有记住登录功能,在通过cookies实现功能是,由于要将客户信息直接保存到cookies,如果直接写入cookies势必会带来安全隐患,因此通过可逆加密后再保存到cookies相对就安全了。

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

函数源码

代码如下:
 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);eturn 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); }eturn 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获取网址的顶级域名代码分享
下一篇:Windows不能在本地启动phpstudy apache2
收藏 将此文推荐给朋友
分享到: