Ahm*_*gle 0 security encryption web-applications
今天我想出了一个关于Web应用程序约定的问题.
为了安全起见,如果我们存储用户的密码,我们很可能正在加密它(使用MD5,SHA-1等)并存储消化哈希以使它们难以或不可能反转.
今天有许多彩虹表是通常的A-Za-z0-9序列的查找表,最多6个字符或广泛使用的密码.假设你是MD5一次用户密码并将哈希作为密码存储在数据库中,而且有一天黑客会破坏你的数据库,现在他们有很多md5哈希和电子邮件地址.当然,他们会查找密码,当他们获得预先编制的匹配时,他们将尝试登录该用户的电子邮件帐户.
这可以通过消化消息两次或简单地将其反转来轻松解决.但是我想知道关于这个问题的常规是什么,以及(据你所知)企业应用程序或巨头(Facebook,谷歌)如何解决这个问题?
你使用所谓的盐.在散列之前添加一些您组成的字符串.在检查密码时也要预先添加.这是一个应用程序范围的字符串.这使得通过彩虹表查找起来更加困难.
所以如果你的盐是"kdi37s !!" 将其保存在数据库中md5(kdi37s!!P@$$w3rd)并在检查时执行相同操作.