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); 

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); 

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容