0
我的web應用程序使用PHP crypt()
函數進行密碼散列。我想使用SHA256算法,所以我相應地生成了用戶的鹽串。問題是我沒有意識到SHA256在我使用的服務器上不受支持(CRYPT_SHA_256
)。我剛將應用程序移動到另一臺支持SHA256的服務器,基本上我的用戶都無法登錄,因爲它們的密碼字符串和salt字符串與前一臺服務器生成的哈希相比產生了不同的哈希值。如何使用PHP crypt()函數和SHA256 salt字符串來生成它將在服務器上不支持SHA256時生成的相同哈希?
您認爲最好的解決方案是什麼,而不要求每個用戶更改密碼?
先謝謝你,我欣賞任何有用的想法。
您不應該使用SHA來散列密碼。請使用[password_hash()](http://us1.php.net/manual/en/function.password-hash.php)函數或[phpass](http://www.openwall.com/phpass/) ) 圖書館。 – 2014-11-06 16:24:20
也可以使用hash()函數 – 2014-11-06 16:26:06
我可能是錯誤的,但據我所知使用sha256 algorythm的唯一用戶salt的crypt()函數足夠強大,可以用於哈希密碼。無論如何感謝您的提示,但無論我決定使用什麼散列方法,我仍然必須使用我的舊解決方案,以便爲那些沒有更改密碼的用戶提供訪問權限。 – vadaszp 2014-11-06 16:35:04