0

我正在用 JSF 编写一个新站点。目前我对登录进行编程。
几年前我使用过 md5,但对于 Rainbow Tables,我认为它不再安全了。
那么,我应该如何将密码存储在数据库中?

4

4 回答 4

2

您要做的第一件事是从您的供应商那里寻找一个预先构建的系统。你想尽可能多地把它推给以编写安全代码为生的人,因为很容易以你甚至不知道的微妙方式出错,直到为时已晚。这样,您还可以从他们那里获得服务更新,因此您不必再考虑它了。

除此之外,请记住为您的密码生成每个帐户的盐,并使用安全的散列算法(md5 意味着速度,不一定是安全性)。SHA1 很常见,尽管它也开始变老了。

于 2009-07-15T21:58:17.580 回答
0

我建议用 sha512 散列和加盐。(为每个人存储一个随机值并将密码和该值一起散列。)

于 2009-07-15T21:55:45.697 回答
0

如果您查找 PKCS#5(或者更好,找到一个已经这样做的有信誉的实现),您会发现一个非常好的机制。

基本上,你选择一个数字(比如 500)、一个密码、一个哈希算法和一个盐(随机数据添加到密码的末尾以使其不易被猜到)。

  1. 取密码,加盐,然后散列。
  2. 拿结果来说,盐(相同的盐)并拥有它。
  3. 重复步骤 2 N 次(在本例中,N 为 500)。
  4. 将最终的哈希加盐结果与 N 和盐本身一起存储在密码数据库中。
于 2009-07-16T05:18:46.167 回答