$encryptedPassword = crypt($password, '$2a$07$usesomesillystringforsalt$');
如若$ usesomesillystringforsalt $一部分是隨機的還是固定的? (我猜是固定的,但我想確定)。
結果例如:
$2a$07$usesomesillystringforeHwaCeDEv6rYjbWCzbzsFKwD4sDLktr
這是一個正確的加密值?
要檢查是否由用戶指定的密碼登錄正確的是:
(比方說,有一個名爲password
輸入字段,並從數據庫中檢索到的$password
值進行比較):
if (crypt($_POST['password'], '$2a$07$usesomesillystringforsalt$') === crypt($password, '$2a$07$usesomesillystringforsalt$')) {
// Password submitted is correct
}
你爲什麼不嘗試一下,找出答案?那麼如果它不作爲一個具體的問題。 –
嗯,它確實工作。但也許我錯過了一些東西。我在問 – federicot
背後的邏輯是否有問題將原始密碼或加密密碼存儲在數據庫中? (它應該是加密的)。在你發佈的第二塊代碼中,如果'$ password'是你數據庫的值,那麼你不需要再加密。你應該比較'crypt($ input,$ salt)=== $ password' –