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

网站账号中密码的加密方式,第1张

①明文储存

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

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

②对称性加密

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

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

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

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

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

③哈希函数

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

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

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

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

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

④哈希加盐

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

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

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

⑤非对称性加密

明白了对称加密后,我们来了解一下什么是非对称加密。我们知道,对称加密是使用的

同一把密匙进行加密和解密。那么,非对称加密自然是使用不同的密钥进行加密和解密啦。

非对称加密有两个钥匙,及公钥和私钥。公钥和私钥是成对的存在,如果对原文使用公钥加密,则只能使用对应的私钥才能解密;因为加密和解密使用的不是同一把密钥,所以这种算法称之为非对称加密算法。

非对称加密算法的密匙是通过一系列算法获取到的一长串随机数,通常随机数的长度越长,加密信息越安全。通过私钥经过一系列算法是可以推导出公钥的,也就是说,公钥是基于私钥而存在的。但是无法通过公钥反向推倒出私钥,这个过程是单向的。

对于原文,通过接收方的公钥进行加密,发送给接收方,接收方拿到密文后,通过自己的私钥可以解密,获取原文信息。在这个过程中,及时接收方公钥泄漏,也不会导致消息泄漏,因为密文只能通过接收方的私钥才能打开。所以,信息安全过程中,接收方只需要保管好自己的私钥不泄露即可。

同样,当接收方向发送方发送消息时,接收方将密文通过原发送方的公钥进行加密,原发送方通过自己的私钥才可解密。

非对称性加密十分安全,即使密文被拦截、公钥被获取,但是无法获取到私钥,也就无法破译密文。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/993091.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存