加密密码安全性

卢卡

假设我有一个表,其中存储了哈希密码,还存储了密码的盐(对于每个用户)。

根据另一个stackoverflow问题,我知道可以将盐与哈希密码保存在同一张表上,这是可以的。

与盐腌的SHA512相比,盐腌的SHA1有多不安全

我的问题是,如果具有哈希密码的数据库将被黑客入侵,并且用户将拥有一个针对这些哈希的彩虹表,并考虑到盐与哈希密码一起存储在同一表中,那么看到它会不会很简单实际密码?您只需要从该特定Rainbow表的密码中消除盐分即可。

考虑到这一点,我不明白为什么可以将盐与散列密码存储在同一数据库的表中。有人可以给我更清晰的解释吗?

塔德曼

好吧,就在那儿停下来如果您甚至要问有关盐腌的问题,那么您已经走错了路。这是很容易出错的事情,并且有太多可怕的例子说明如何做到这一点,以至于对完全错误的事情变得过于自信。

最简单的正确方法是使用该password_hash函数,而不要发明自己的古怪方法。实际上,这比您在此考虑的要容易得多,也更安全。

password_hash函数默认情况下在内部使用Bcrypt,并且它是一个哈希,旨在使暴力破解极其困难,并且不能与Rainbow表一起使用。它也是可调的,因此您可以根据需要任意增加难度。

您需要此可调整性因素来保护您的数据库更长的时间。我们只是不知道,如今很难破解的东西可能在十年后变得微不足道。现在,您可以更难地确定数据库是否由于某种原因泄漏出去,从而在一段时间内仍然受到保护。

通常将散列和盐存储在同一张表中是必要的,将它们拆分通常是徒劳的,对于攻击者来说,抓住两个不同的表几乎不费吹灰之力。他们可能会从您始终无法控制的备份中获取所有内容。

现代的破解系统甚至不用理会彩虹桌。GPU破解的最新技术如此之快以至于使其变得毫无意义,通用密码可以在几秒钟之内破解,较少的普通密码在数分钟内破解,而在数小时或数天之内更难破解,即使这是当务之急。比特币对SHA256的使用推动了该部门的大量研究,致使这些算法对于此类安全性几乎毫无用处。市场上有一些设备可以每秒执行数万亿个哈希。

这实际上比您可以从硬盘读取Rainbow表更快。彩虹桌基本上是历史。

今天的威胁是巨大的已知密码词典,以及将其突变为更庞大数量的变体的一种方法。这些使GPU处于繁忙状态,并且可以发现人们使用的许多较不常见的,故意棘手的密码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

生成 AES 加密密钥的安全性

来自分类Dev

没有TLS / SSL但在Thunderbird上使用加密密码的邮件帐户的安全性如何

来自分类Dev

安全性:将加密密钥保存在web.config或代码中

来自分类Dev

NSURLSession密码安全性

来自分类Dev

如何在没有 symfony 安全性的情况下加密用户密码

来自分类Dev

加密分区的安全性如何?

来自分类Dev

加密分区的安全性如何?

来自分类Dev

Encfs加密文件的安全性如何

来自分类Dev

在python中最安全的方式来加密密码吗?

来自分类Dev

了解安全性和秘密密钥

来自分类Dev

加密密码FOSUserBundle

来自分类Dev

加密密码

来自分类Dev

使用NPGSQL的密码安全性?

来自分类Dev

密码盐如何增加安全性

来自分类Dev

BIOS硬盘密码安全性?

来自分类Dev

带密码的Word安全性

来自分类Dev

Windows XP密码安全性

来自分类Dev

VNC密码的安全性如何?

来自分类Dev

密码管理器安全性

来自分类Dev

如何保持wifi密码的安全性?

来自分类Dev

安全性,密码丢失或遗忘

来自分类Dev

如果使用默认加密(高安全性)保护密码,是否无法使用Excel访问Access 2010数据库?

来自分类Dev

Spring Security:加密密码

来自分类Dev

如何创建加密密码

来自分类Dev

Spring Security:加密密码

来自分类Dev

Tomcat Hawtio加密密码

来自分类Dev

连接到SSL加密网站的安全性如何?

来自分类Dev

加密的LUKS文件系统的安全性如何?

来自分类Dev

Laravel的加密和解密助手的安全性如何?