开发者社区> 问答> 正文

为什么同一个字符串两次MD5加密出来的值不同?

今天在写自己的网站时遇到了个让我很困惑的问题. 情况是这样的. 我想通过发送邮件验证用户的邮箱, 第一次通过MD5生成URL发送了邮件

 $_ZhuCeShiJian = time(); $_YanZheng = md5($_POST['zhanghao'] . $_YanZhengMa . $_ZhuCeShiJian); $_ChaXun_LeiXing = 'INSERT INTO ' . QIANZHUI . '_YongHuLeiXing (YongHu_ID, LeiXing_ID, JiHuoMa, YouXiaoQi, ZhuangTai, ZhuCeShiJian) VALUES (?, ?, ?, ?, ?, ?)'; $_ShengMing_LeiXing = $_ShuJuKuLianJie -> prepare($_ChaXun_LeiXing); $_ShengMing_LeiXing -> bind_param('ddsddd', $_ZhangHaoID, $_LeiXingID, $_YanZhengMa, $_YouXiaoQi, $_ZhuangTai, $_ZhuCeShiJian); $_ShengMing_LeiXing -> execute(); $_ShengMing_LeiXing -> close();

. 生成的串值是: 6ace0e0799a888ec5698baa8cddd8de0, 然后我通过邮件的链接进入验证页面. 在代码中我通过调取数据库中相关的值重新用MD5加密了一遍字串
$_YanZheng = md5($_ZhangHao . $_YanZhengMa . $_ZhuCeShiJian);
生成的串值却是: 228534dd0bfacc57a70fd752761591fc. 理论上, 虽然我通过了数据库调用和在不同的两个页面上. 可MD5中的字符串是一样的啊. 怎么两次加密的结果却完全不同? 当然, 这个问题我通过把加密字串存入数据库已经解决, 可我很困惑, 为什么两次加密的结果会完全不同, 如果有知道原因的大佬, 希望得到你的解答. 谢谢! 还有, 是否有办法解决这个问题, 让两次加密的值可以相同, 再次谢谢了.

展开
收起
游客ovl2773shgofi 2021-06-12 14:34:45 1965 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
基于可信计算与加密计算 打造云上原生计算安全 立即下载
\"视频服务特色解决方案——直播连麦与点播加密 \" 立即下载
量子加密通信技术 立即下载