snakeser
snakeser
2017-11-16 04:42

php 使用mcrypt加密后,解密的值和原变量的值不相等

  • 解密
  • php
  • 加密

<?php
//比较两值的函数
function abc( $a, $b){
if ($a == $b) {
echo 'true';
}
else{
echo 'false';
}
};

$user_en = "zkb";//需要加密的值
$key = "abc22333";//秘钥
// 打开mcrypt,或者mcrypt类型的资源对象,该对象使用ecb模式,使用3des作为加密算法。
$td = mcrypt_module_open('tripledes', '', 'ecb', '');
 // 创建iv(初始化向量)
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
 // 根据密钥和iv初始化$td,完成内存分配等初始化工作
mcrypt_generic_init($td, $key, $iv);
 // 进行加密
$user_encrypt = mcrypt_generic($td, $user_en);
//进行解密
$user = mdecrypt_generic($td, $user_encrypt);
 // 反初始化$td,释放资源
mcrypt_generic_deinit($td);
 // 关闭资源对象,退出
mcrypt_module_close($td);
echo $user_en.'  =  '.$user.'<br>';//比较原值和解密后的值
echo abc($user_en,$user).'<br>';//比较原值和解密后的值
echo '$user_encrypt:'.gettype($user_en).'    '.'$user:'.gettype($user);//比较原值和解密后的值的类型

?>

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

2条回答

为你推荐

换一换