我真的需要哈希密码吗?

时间:2010-08-24 09:01:12

标签: database passwords hash authentication

我正在构建一个项目,它有一个非常基本的登录系统。没有可用的REGISTRATION系统,将手动添加用户。我也很好地保护了数据库数据输入门。毕竟,我是否还需要哈希,甚至将用户密码加盐?

如果您的答案是肯定的,那么下一个问题是为什么?

10 个答案:

答案 0 :(得分:11)

那么,入侵者能够冒充其他用户的后果是什么?对添加散列和腌制的难度(这不是很大)进行权衡。

您可能需要考虑的一个风险是,如果用户在多个站点上拥有相同的密码,那么他们的安全性就像最弱的站点一样安全。即使您自己手动分配密码(并且不允许用户选择密码),他们也可能会继续在其他网站中使用相同的密码。

答案 1 :(得分:8)

绝对。这是您必须尊重的最重要的义务之一 - 非常谨慎地处理他们的个人数据。

答案 2 :(得分:7)

如果您为每个用户生成密码而不让用户更改密码,那么您可以设置一个不对其进行散列的情况。

然而:

  • 您必须向每个人解释审核系统为什么不对密码进行哈希处理。
  • 您必须有一些方法证明系统管理员没有查看用户的密码,然后以用户身份登录。
  • 许多程序员会认为你不知道自己在做什么。
  • 如果系统在某个时候被更改,或者代码被复制到另一个系统,该怎么办。

我认为这就像过马路一样。

  

即使是这样,你也总是两面都看   绿人说可以越过。

(从两个方面来看都比较快,然后向任何看孩子解释,以及在这种情况下你不需要的原因)

答案 3 :(得分:5)

在某些司法管辖区/行业中,以纯文本格式存储登录凭据可能违反了数据保护法。如果你在一个与医疗或财务记录有一点关系的系统上在美国做类似的事情,并且你接受了审计,即使没有违规行为,如果发生的最坏情况你会很幸运在您的系统通过审核之前,您的客户和供应商是否拒绝与您做生意。也可能会有巨额罚款。即使您的系统使用敏感数据,如果它打算供常规使用此类数据的人使用,他们可能会重复使用也用于访问受监管数据的密码的可能性至少让审计员非常紧张,并使他们的客户极不情愿与你合作,即使你在技术上遵守规定。

答案 4 :(得分:2)

是的,因为您的数据库仍在那里,如果没有注册表单,用户系统及其数据库就不会比使用它更难以妥协。

即使您很好地保护了“数据库数据输入门”,您的数据库仍然不是100%的攻击者。如果有人仍设法通过您的防御并查看数据库中的所有内容,并且所有密码都是纯文本的,那么您的用户帐户仍会受到损害。通过散列它们至少会让攻击者花费更多时间,同时保护您的用户。

答案 5 :(得分:2)

是的,因为,例如,有权访问数据库的人很容易冒充其他用户。

答案 6 :(得分:1)

是的,因为总是存在危及数据库泄露的风险。请记住,许多人对许多网站,即时消息等使用相同的密码,因此您不仅要为系统中的信息带来风险。

答案 7 :(得分:1)

人们使用相同的密码不仅仅是用于您的网站。如果攻击者获得密码,则会产生比您的网站更多的后果。该用户的电子邮件,银行帐户等也可能会受到损害。做勤奋的事。

答案 8 :(得分:1)

为什么不散列密码?它可以保护您,您的员工和您的用户,并且几乎没有任何实施成本。用户有权期望您的系统管理员/ DBA /无法看到其密码的人员和管理员有权不必不必要地接触到该信息。在任何内部/外部技术安全审核中,审核员将要做的第一件事就是在数据库中的任何密码列中查找并确定它们是否经过哈希处理。

答案 9 :(得分:0)

  

我也很好地保护了数据库数据输入门。

我打赌每个系统设计师/管理员都会为计算历史中的每个受到破坏的密码文件做同样的事情。