UPDATE:MD5沒有給出正確的散列?
響應FOUND AT:
我想用我的論壇憑據(我使用Invision電源板)進行分離頁面 ,所以我開始研究如何對密碼進行操作。
主要是對會員表,你有members_pass_hash和members_pass_salt表和加密如下進行:
/**
* Generates a compiled passhash.
* Returns a new MD5 hash of the supplied salt and MD5 hash of the password
*
* @param string User's salt (5 random chars)
* @param string User's MD5 hash of their password
* @return string MD5 hash of compiled salted password
*/
static public function generateCompiledPasshash($salt, $md5_once_password)
{
return md5(md5($salt) . $md5_once_password);
}
從那以後,我開始做我的頁面,但無論我做什麼密碼永不相匹配的中數據庫。
即使使用MD5(CONCAT(MD5(members_pass_salt),MD5('mypass'))
直接對MySQL不給我正確的價值...
我也搜索了社區和IPB的論壇,但不能縮小東西可以在這裏是問題。
產生的密碼我的這段代碼是如下:
$password = $this->input->post('password');
$md5_once_password = md5($password);
$password_hash = md5(md5($salt) . $md5_once_password);
$鹽來自於數據庫和我有呼應到我的網頁,以確保它是正確的鹽爲好。
在IPB代碼繼續還有:
if ($member['members_pass_hash'] == self::generateCompiledPasshash($member['members_pass_salt'], $md5_once_password))
{
return true;
}
else
{
return false;
}
並回到初始一段代碼我從IPB貼吧意味着密碼與md5(md5($salt) . $md5_once_password)
members_pass_hash
匹配
任何想法,我可能做錯了,以使密碼不匹配?
編碼的地方或任何東西?
更新與hashs來進行測試:
這一個正常工作:
salt: Do.|O
password: fsk23478cf
hash: f3f3c75110ea9a27a1c01e580676997f
這一個不工作,不知道爲什麼又:
salt: ppxps
password: fsk23478cf!*
hash saved by the forum: d060c2fb78c5b8a9e9d303c7b4fab456
hash created by my aap: 0df0c7f24f7f79bd7ad8e501f5447986
UPDATE2:
指責問題是exclamation mark
上的密碼,但仍不知道是什麼原因造成的,以及如何解決。
密碼與!
將無法正常匹配,並且現在我想看看論壇做什麼特別的!
,我還沒有找到,所有我所發現的是,它並修剪密碼字段和那麼md5就像上面說的那樣。
這有點不清楚。你是說你用兩個不同的代碼計算散列,結果不匹配? –
@Oli查爾斯沃斯出於某種原因是的,這就是我想找出來的。像這樣的代碼都是一樣的,但哈希從不匹配相同的密碼和從數據庫中保存的鹽。 – Prix
好的。你可以發佈一個最小的,自包含的代碼示例來演示這個問題嗎? –