加密数据库密码字段的必要性如何

A D*_*per 1 security encryption passwords database-design

我听说为了安全问题,建议在数据库中加密密码字段.

如果我的网站只有我可以访问数据库.根据我们的网站政策,我对查看其他密码没有任何问题.

这是否也适用于我的网站或者还有一些其他安全原因可以告诉我.

Nev*_*uyt 5

指引是,没有人-甚至是用户自己-应该能够看到密码,他们不应该被存放在一个方式,让他们要检索的数据库.这是因为有很多方法可以丢失这些数据 - 管理员可以打印出一份报告,并将其留在桌面上; 攻击者可能能够使用SQL注入来运行数据库查询; 有人可能会闯入你的建筑物并窃取备份磁带.

许多客户在多个站点上使用相同的密码 - 因此,如果您的站点是最薄弱的链接,如果他们重新使用了他们的密码,您可能会将其暴露给其他站点上的风险.

建议使用一种称为"散列"的加密技术,它采用明文密码并将其转换为无意义的字符串; 没有办法扭转哈希,这意味着即使我偷了哈希密码,我也无法弄清楚原始的纯文本是什么.

散列相同的字符串两次会产生相同的散列 - 所以当有人登录时,您将对其明文密码进行散列,并将其与数据库中的散列进行比较.

OWASP链接提供有关此主题的更多信息,包括"salting"哈希.

  • 让我举一个现实世界的例子来说明这一点.我的手机供应商T-Mobile有一个在线网站来管理/购买零件/添加到您的帐户的行.我忘记了密码并点击"忘记密码"按钮,他们立即通过短信将我的明文密码发送到我的手机,没有发出警告.我的电话正坐在办公桌上,我有5-6名同事站在旁边,我的手机液晶显示器上的密码闪烁了几分钟才能回到办公室.给我发短信只是冰山的一角,存放它的明文让我感到很生气. (4认同)