我需要在php中檢查密碼的有效性。密碼在django中用散列算法作爲sha256的pbkdf2散列器進行哈希處理。如何在PHP中複製django密碼驗證功能?
https://gist.github.com/staydecent/1019680 < - 這個人能夠用簡單的sha1散列做同樣的事情。
Verifying Django Password in Ruby on Rails gives non-matching password < - 此人在ruby中有類似的問題,而不是php。
據我所知,django密碼被存儲,以便哈希樣式是第一個組件,接下來的複製數量,然後鹽,然後是哈希。
我已經成功地提取了每個組件,但下面的php不起作用。它返回一個正確長度的字符串,但不是正確的內容。我擔心散列碼不起作用。我使用散列器是從本網站: https://defuse.ca/php-pbkdf2.htm
這是我的PHP:
//$enc_password is the password from database
$pieces = explode('$', $enc_password);
$iterations = $pieces[1];
$salt = $pieces[2];
$hash = $pieces[3];
//raw_password is user's entered password
if ($hash == base64_encode(pbkdf2("sha256", $raw_password, $salt, $iterations, 32, true)))
{
echo ("SUCCESS");
}
else
{
echo ("FAILED");
}
任何和所有幫助表示讚賞!
作爲一個方面說明 - http://stackoverflow.com/questions/14047979/executing-python-script-in-php-and-exchanging-data-between-the-two它會是多麼糟糕,只是寫在Django的/ python的小部分,並返回成功或失敗JSON編碼的消息回到PHP? – Lugubrious