snakeser 2017-11-16 04:42 采纳率: 50%
浏览 742

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

<?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条回答 默认 最新

  • snakeser 2017-11-16 04:44
    关注

    运行结果如下:
    zkb = zkb
    false
    $user_en:string $user:string

    评论

报告相同问题?

悬赏问题

  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?