首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >破解咸密码哈希的时间复杂度是否大于破解未咸密码哈希的时间复杂度?

破解咸密码哈希的时间复杂度是否大于破解未咸密码哈希的时间复杂度?
EN

Stack Overflow用户
提问于 2013-12-30 20:04:17
回答 3查看 1.4K关注 0票数 0

假设有人试图通过暴力破解泄露的密码(即,不使用彩虹表或常用密码列表),以下是真的吗?

O(cracking_salted_password) > O(cracking_just_password)?

如果攻击者成功地访问了我的用户数据库,显然他们在哈希我的用户密码时也使用了salt,尽管它对每个用户都是完全唯一的。我想知道,时间复杂性是否也扮演了一个角色,当有人试图破解一个盐渍密码通过蛮力。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-30 20:40:27

由于盐渍实际上只创建特定明文散列到的一定数量的不同值(例如,将密码“密码”哈希为值X1,例如,一个16位的盐分,它可以散列的值有65536个不同的可能值),所以盐析的效果实际上只是改变方程中的常量乘法因子。换句话说,如果您的哈希算法是O(n^2),那么对输入进行盐析使其为k * O(n^2),这实际上与O(n^2)相同。是的,要匹配特定密码的散列需要花费更多的时间,这取决于您的salt有多大,但是它确实不会改变O()的复杂性度量。复杂性度量不在于执行某个问题需要多长时间,而在于解决一个比最初问题大两倍的问题需要多长时间。

票数 1
EN

Stack Overflow用户

发布于 2013-12-30 21:33:03

我想知道,当有人试图通过暴力破解一个盐渍密码时,时间复杂性是否起了作用。

不,单一密码的时间复杂度不会因盐而大幅度增加。盐确实为加密时间增加了一个很小的恒定值,但不足以引起问题。

这并不意味着盐渍是无用的。盐渍有两个重要原因:

1)使用相同密码的用户看起来会有所不同。如果攻击者看到多个用户拥有相同的密码,他/她将假定密码不是随机的,并首先攻击该密码。

2)使彩虹桌不实用。

在此之前,您只需要一个查找表来进行所有密码猜测。您可以离线预计算它(甚至在某些系统之间重用它!)

但是当您添加盐时,攻击者需要每个用户一张彩虹桌。这使得彩虹桌指数更大,甚至可以使它更快地使用蛮力,而不是使用彩虹桌!

因此,如果您只有一个用户,那么salt可能没有帮助,但是当您获得更多的用户时,盐是必不可少的。最好总是有盐,因为小系统往往会变成大系统。

票数 4
EN

Stack Overflow用户

发布于 2013-12-30 21:18:08

如果有一个具有数十个密码作为散列的数据库,并且通过散列(大)一组可能的值来进行攻击,则工作一次可以应用于多个散列。

但是,如果密码是咸的,那么每个密码都是唯一的,每个密码都需要重复工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20846643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档