php md5 怎麼輸出的不一樣?

當註冊時
我這樣寫

$_SESSION['password'] = md5($_POST['password']);

然後直接用$_SESSION['password']輸入資料表

當要登入時

$password = md5($_POST['loginpassword']);

確認是否一致

但發生了問題
就是一樣的字串
進入資料表時的值是0144712dd81be0c3d9724f5e56ce6685
當登入時的值變成82e39cf0b075c9429619aba2022935b2
我就覺得詭異,怎麼都不符合密碼?印出後才發現這樣情況。
我確定是一模一樣的數字字串
怎麼會完全變了樣?
我換了sha1也是一樣完全不同!


登入時

<input name="loginpassword" type="password" id="loginpassword" placeholder="Password">

註冊時

<input name="password" type="password" id="password" placeholder="Password">

差別在我註冊的時候沒有立即送到資料表
只先存在SESSION中 然後等等再送入
這有關係嗎?
這簡直太奇葩了
我第一次遇到

阅读 4.1k
4 个回答

你的字符串确定一样,md5后的加密串也会是一样的。你可能忽略的是有没有录入空格,用个trim去个空格,或者打印出两次录入的字符串长度是否一致。

你的$_SESSION['password']能获取到吗

$_SESSION['password'] = md5($_SESSION['password']);
你这个是什么意思?写错了吧

POST表单的字段都不一样啊同学,认真点好吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题