簡體   English   中英

(PHP 5 <5.5.0)的password_hash()的替代方法是什么?

[英]what is an alternative to password_hash() for (PHP 5 < 5.5.0)?

根據手冊: password_hash此功能可用於(PHP 5 >= 5.5.0)

在尋找另一種方式后,我從這里找到了這個簡單的功能: http : //www.sitepoint.com/password-hashing-in-php/

function generateHash($password) {
    if (defined("CRYPT_BLOWFISH") && CRYPT_BLOWFISH) {
        $salt = '$2y$11$' . substr(md5(uniqid(rand(), true)), 0, 22);
        return crypt($password, $salt);
    }
}

我可以在使用之前通過使用function_exists來管理代碼,但是我的問題是關於上述替代代碼是否安全,或者在較早版本的PHP中是否有替代方法?

對於<5.3.7版的PHP,我建議:

http://www.openwall.com/phpass/

對於> = 5.3.7的PHP版本,請使用:

https://github.com/ircmaxell/password_compat

生成自己的鹽需要大量的知識,因為好的,適當的鹽需要大量的熵。 在PHP中生成這種鹽很麻煩,這就是為什么您通常最終要依靠其他資源來為您提供此字符串,例如/dev/urandomopenssl_random_pseudo_bytes 相信我,如果您不經過認真的研究和考慮,就不會想嘗試一下。

建議使用新的password_* API,但是如果您需要支持舊版本的PHP(PHPass所在的位置),則可能會出現問題。必須討厭那些每月$ 1的PHP 5.2托管計划。

對於PHP 5.3.7到5.5.0之前的版本,您可以在https://github.com/ircmaxell/password_compat上找到password_hash的實現,該人由開發該版本的同一人編寫,而該版本現已在PHP 5.5.0中實現。 +並故意提供向后兼容性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM