如果您確定密碼是正確的,但是password_verify()
函數(shù)始終返回?zé)o效密碼,可能有以下幾個(gè)可能的原因:
密碼哈希存儲(chǔ)的字段長度不夠:password_verify()
函數(shù)需要哈希存儲(chǔ)的字段長度至少為60個(gè)字符。如果字段長度不夠,無論密碼是否正確,函數(shù)都會(huì)返回?zé)o效密碼。請(qǐng)檢查字段長度是否滿足要求。
密碼哈希存儲(chǔ)的字段類型不正確:password_verify()
函數(shù)需要哈希存儲(chǔ)的字段類型為字符串。如果字段類型不正確,函數(shù)可能無法正確解析哈希值,從而返回?zé)o效密碼。請(qǐng)檢查字段類型是否為字符串。
密碼哈希存儲(chǔ)的字段包含額外的空格或換行符:如果密碼哈希存儲(chǔ)字段包含額外的空格或換行符,password_verify()
函數(shù)可能無法正確解析哈希值,從而返回?zé)o效密碼。請(qǐng)檢查字段是否包含額外的空格或換行符,并在比較密碼哈希之前進(jìn)行適當(dāng)?shù)男藜簟?/p>
如果以上方法都沒有解決您的問題,建議您檢查密碼哈希算法是否正確設(shè)置,并確保使用相同的算法對(duì)密碼進(jìn)行哈希和驗(yàn)證。