我该如何保存我的密码?

时间:2009-07-15 21:53:16

标签: security passwords md5 sha1

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

4 个答案:

答案 0 :(得分:12)

答案 1 :(得分:2)

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

除此之外,请记住生成每帐户盐以使用密码,并使用安全散列算法(md5用于速度,不一定是安全性)。 SHA1很常见,虽然它也开始变老了。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

基本上,你选择一个数字(比如500),一个密码,一个哈希算法和一个盐(随机数据添加到密码的末尾,以减少它的猜测)。

  1. 取密码,加盐,然后哈希。
  2. 取结果,加盐(同盐)并加油。
  3. 重复步骤2 N次(在此示例中,N为500)。
  4. 将最终的散列,盐渍结果以及N和盐本身存储在您的密码数据库中。
相关问题