我想在我的系统中使用 Bcrypt 进行密码加密。但是所有的例子都是这样的:
$password = $_POST['password'];
$salt = substr(str_replace('+', '.', base64_encode(sha1(microtime(true), true))), 0, 22);
$hash = crypt($password, '$2a$12$'.$salt);
这对我来说看起来很安全,但我想知道,在每个示例中,没有人在使用 Bcrypt 之前对密码进行哈希处理。
由于独特的盐,Rainbow 表应该无法一次破解所有密码。但是,如果黑客获取一条记录并使用该特定记录的盐创建一个彩虹表,他应该能够破解一个弱密码。
因此,如果有人使用弱密码(比如说“foo”),在使用 Bcrypt 之前先使用 SHA-512 对其进行哈希处理会更安全。我对吗?或者这只是看起来更安全?