2015-07-11 32 views
2

使用MD5(老辦法)的最佳方式:什麼是使用password_hash和password_verify

$sql = "SELECT * FROM 'table' WHERE `username`='bob' AND `password`='123456'"; 

**獲取數據從數據庫中前檢查密碼。

使用password_hash和password_verify(新路):

$sql = "SELECT `password` FROM 'table' WHERE `username`='bob'"; 

$bool = password_verify('password_from_post_method', 'password_from_database'); 

if($bool) {echo "your password is right";} 

**數據從數據庫中獲得第一,然後檢查密碼,從數據庫中。

***我認爲舊的方式更好。當我確認密碼正確時,從數據庫中獲取數據。也許,我以錯誤的方式使用password_hash和password_verify。如果您有任何想法,請給出建議。謝謝。

+0

我認爲最好的方式可能是使用實際有效的SQL而不是一些組成語言:-)您從表中選擇,而不是從where子句中選擇。 – paxdiablo

+0

thx。我編輯它 – IvanK

+0

第二種方法是正確的路要走。 – zerkms

回答

0

你堅持你的數據庫的密碼列[哈希(密碼)+ randomSalt] 。在驗證過程中,您能否將方法1中提到的SQL編寫爲 ?你不能,因爲隨機生成的鹽也隨着密碼一直存在。這就是爲什麼你的'新方式'是要走的路。

相關問題