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);
}
相关文章
- 11-06【.NET】加密和解密(.NET)
- 11-06python 加密方法总结
- 11-06关于webgl数据传输加密/解密的猜想
- 11-06(xxxx)八:加密图片的解密
- 11-065-1异或(XOR)运算进行加密解密
- 11-06图像的加密与解密
- 11-063des加解密 cbc方法 数据填充
- 11-06DES加密解密工具2.1及其代码——支持字符串及文件加密,支持3重DES
- 11-06DES加密与解密在GET请求时解密失败的问题
- 11-06加密与解密 charter 4 学习记录