0
点赞
收藏
分享

微信扫一扫

网站账号中密码的加密方式

一点读书 2022-02-06 阅读 42

①明文储存

把用户密码原封不动地放在数据库里,在登录时直接判断用户输入的内容和数据库里储存的密码是否相同,这种储存方式叫做明文储存

如果黑客入侵数据库,明文储存很容易导致密码泄露,黑客还可以通过撞库攻击去尝试登录其他网站的账号。

②对称性加密

为了防止密码泄露,我们可以通过一个密钥将明文加密成密文,而密文也可以通过密钥还原成明文。

现代常用的对称性加密算法有DES、3DES、AES等。

网站通过密钥将密码加密成密文储存在数据库中,当用户登录时会将密文转回明文再与用户输入的密码进行比较,如果相同则登录成功。

但问题在于密钥也储存在某个地方,黑客既然能够入侵数据库,大概率储存密钥的地方也会被破解。

因此由于对称性加密明文与密文可以相互转换的特点,这种加密方式仍然不够安全。

③哈希函数

哈希函数能够将原始内容转化为你认不出来的固定长度的值,这个得到的值叫做哈希值,并且如果输入的内容相同,同一个哈希函数返回的哈希值也相同。

哈希函数不需要密钥,而且无法通过哈希值得到原始内容,因此比对称性更为安全。

常用的哈希函数有MD5、SHA等。

网站通过哈希值储存在数据库中,当用户登录时会将输入的密码转化为哈希值再与数据库里的储存的哈希值进行比较,如果相同则登录成功。

虽然无法通过哈希值反向推导出原始密码是什么,但是黑客们会将常用的简单密码的哈希值求出来,入侵数据库后与里面的内容进行比较就可以得到一些用户的密码,这种方式叫做彩虹表攻击

④哈希加盐

在用户注册账号时,先对密码加盐(加上随机字符串),然后再计算加盐后密码的哈希值,盐会和哈希值一起储存在数据库中。

网站会将哈希值和盐一同存在数据库中,当用户登录时会将输入的密码加盐转化为哈希值再与数据库里的储存的哈希值进行比较,如果相同则登录成功。

常见密码在加盐后就变得不常见了,并且由于盐是完全随机的,所有两个相同的密码在加盐后会变得不同,哈希值也会变得完全不同,因此这种方式能够很好地抵御彩虹表攻击。

举报

相关推荐

0 条评论