【发布时间】:2016-07-07 22:35:02
【问题描述】:
https://alias.io/2010/01/store-passwords-safely-with-php-and-mysql/
我正在按照本教程在我的网站上创建一个登录系统,但是当我尝试使用 bcrypt 对密码进行哈希处理时,如教程中所示,由于某种原因,输出确实很短。
输入密码示例:gf45_gdf#4hg
盐示例:$2a$20$wEJ27V9qx.HWP68SNLcF7w==
示例输出哈希:$2l6f23nreXR6
我觉得这真的很容易暴力破解,与网上一些很长的输出相比,这里是代码:
$cost = 10;
$salt = strtr(base64_encode(mcrypt_create_iv(16, MCRYPT_DEV_URANDOM)), '+', '.');
$salt = sprintf("$2a$%02d$", $cost) . $salt;
$hash = crypt($password, $salt);
有人知道如何增加哈希的长度吗?
【问题讨论】:
-
当您可以使用 password_hash() 并让它完成所有繁重的工作时,为什么还要这样做?
-
我不能使用 password_hash() 因为我在一个只允许我使用 PHP 5.2 的免费主机上运行我的网站
-
您可能可以使用这个反向移植:github.com/ircmaxell/password_compat 这取决于您主机的 PHP 包是如何构建的。
-
你觉得免费交易安全好吗?
-
@zaph 不,但我是一名高中生,我没有有效的货币收入。我很想购买一台虚拟机并尝试使用 node.js,但我不能,所以我必须使用我可用的东西。