0

我理解并认识到,与使用 Google 或 Facebook 等服务相比,在我自己的数据库中存储密码是一个巨大的安全漏洞,但我想知道是否可以使用以下代码使用加盐哈希安全地存储用户名和密码:

$username = $_POST['user']
$salt = md5(openssl_random_psuedo_bytes(24, true));
$pass = sha1($salt.$_POST['pass'])

我相信它相当安全,但我不是专家。

编辑:

我想这样会更好,不是吗?

$salt1 = md5(sha1(openssl_random_psuedo_bytes(32, true));
$pass = password_hash($_POST['pass'] . $salt1, PASSWORD_BCRYPT);

我是否更接近于找到一个体面的密码存储机制?

4

1 回答 1

3

这非常糟糕(尽管可能更糟)

  1. SHA1 不是很安全。
  2. 所有直接哈希函数都太快而无法用于密码。

您应该使用 PBKDF2 或 bcrypt 或 scrypt。

于 2015-01-19T23:16:52.253 回答