Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  php  >  正文 PHP可逆加密与解密函数

PHP可逆加密与解密函数

发布时间:2014-11-21   编辑:www.jquerycn.cn
很多会员登录系统要求有记住登录的功能,一般是通过写入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 base64加密解密的实现代码
php可逆加密函数代码一例
php加密函数md5,crypt,base64_encode的用法介绍
PHP可逆加密与解密函数
PHP 数据加密的方法
【哈希密码】PHP比md5更安全的加密方式
php 加密、解密类与调用实例
php crypt函数加密和解密的实例分享
四种好用的PHP自定义加密函数(可逆/不可逆)
有关discuz程序中PHP加密函数的原理分析

关键词: php加密解密   
[关闭]