如何防止数据库中的信息被“脱库”-笔记

我们可通过hash算法对用户密码加密之后再存储,不过最好选用较安全的加密算法,比如SHA(MD5据说已被破解),但仅仅这样加密就行了吗?

用户信息“脱库”后,黑客利用字典攻击:维护一个常用密码的字典表,将字典中每个密码用hash算法计算hash值,如果用户“脱库”后的密文和hash值相等,基本就可以认为密文对对应的密码就是字典中的密码,为什么说是基本认为?因为可能会存在hash冲突

针对字典攻击,我们可以引入一个盐(salt),与用户的密码组合到一起,增加密码难度,对组合后的字符串做hash算法算法加密,将其存储到数据库中,增大破解难度。不过,安全与攻击是一种博弈关系,不存在绝对的安全,所有安全措施都只是增加攻击成本而已。

你可能感兴趣的:(数据结构与算法)