我試圖遵循this paper(默多克硬化無狀態會話Cookie)來實現salting機制。以下僞代碼描述的代碼:如何正確解釋哈希方案的遞歸僞代碼
a[0](salt, password) = H(salt||password) a[x](salt, password) = H(a[x−1](salt, password)||password)
H:加密安全散列函數
X:哈希迭代計數
一個:驗證器
鹽:每賬號,密碼安全僞隨機數約128位
密碼:明文用戶pw
我不知道php的執行是否如下:
$a0 = hash('sha256', $salt | $password);
$auth = recursiveHash($a0, $password, 256)
function recursiveHash($salt, $password, $counter) {
if ($counter === 0) {
return hash('sha256', $salt | $password);
} else {
$counter--;
return $this->recursiveHash(hash('sha256', $salt | $password), $password, $counter);
}
}
一般來說:我確實在拼寫的確切語法解釋。 $ varOne,$ varTwo是什麼意思?它是最後一次函數調用的結果嗎?是||按位或運算符?爲什麼不是一個|?什麼是平均如下:
c = a[n](salt, password)
是否相同(當n == X)爲:
a[x](salt, password) = H(a[x−1](salt, password)||password)
會很高興,如果有人可以幫助我的語義和句法解釋這張紙。
所以基本上你正在嘗試創建一個鹽漬散列。爲了做到這一點,您只需將表單中獲得的密碼與安全隨機生成的鹽串聯起來即可。背後的主要思想是爲相同的密碼設置不同的哈希值。如果您是初學者,請注意這一點,因爲這很容易導致錯誤:https://www.youtube.com/watch?v=8ZtInClXe1Q –
我想我知道一般密碼存儲問題。我的問題是,如果在這種特殊情況下的醃製是通過按位或操作或經典追加添加的。更一般的是,如何正確讀取紙張的僞代碼。 – user3657114
我的問題中沒有看到任何'$ varOne,$ varTwo'?那些定義在哪裏? 'a [n]'源自哪裏? –