3 回答

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊
你可能正在尋找
password_hash ( string $password , int $algo [, array $options ] ) : string
https://www.php.net/manual/en/function.password-hash.php

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊
找到了一個(gè)實(shí)際的解決方案。通過強(qiáng)制加鹽,事實(shí)證明 PHP 將無效的“$2”STD_DES 加鹽解釋為“q2”。
因此,這個(gè)問題的答案是可以在較新版本的 PHP 中驗(yàn)證這些散列,方法是更改用于比較散列的鹽,使其以“q2”而不是“$2”開頭。從那里開始,可以substr_replace($str, '$', 0, 1);
在執(zhí)行相等性檢查時(shí)調(diào)用將新添加的“q”字符替換回“$”字符。
作為一個(gè)軼事,顯然我得到的信息是不正確的,并且哈希值是在 PHP 5.3.29 中生成的,這與文檔所說的退回到在版本 5.3.2 中修補(bǔ)的 STD_DES 相矛盾。

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊
作為一種解決方法,我最終實(shí)際上將舊版本的 PHP 用于單個(gè)目錄,我可以在其中調(diào)用file_get_contents()
并使用舊的(錯(cuò)誤的)算法檢索哈希,但在其他地方仍然使用更現(xiàn)代的 PHP 版本。
然而,這不是一個(gè)合適的解決方案,因?yàn)樗诩夹g(shù)上沒有回答這個(gè)問題: “我如何在更新版本的 PHP 中驗(yàn)證這些格式錯(cuò)誤的密碼?”
因此,除非似乎沒有其他可能的解決方案,否則我不會(huì)將此標(biāo)記為已接受的答案(但我認(rèn)為為了完整性起見應(yīng)該添加此答案)。
- 3 回答
- 0 關(guān)注
- 128 瀏覽
添加回答
舉報(bào)