Answers:
首先要回答最后一部分:是的,如果公开的数据是明文还是散列,那将有所不同。在哈希中,如果更改单个字符,则整个哈希是完全不同的。攻击者知道密码的唯一方法是对哈希进行暴力破解(这并非没有可能,特别是如果哈希未加盐。请参见Rainbow表)。
至于相似性问题,这取决于攻击者对您的了解。如果我在站点A上获得密码,并且我知道您使用某些模式来创建用户名等,则可以在您使用的站点上尝试使用相同的密码约定。
或者,在上面提供的密码中,如果作为攻击者的我看到一个明显的模式,可以用来将密码的特定于站点的部分与通用密码部分分开,那么我肯定会将该部分定做为定制密码攻击给你。
例如,假设您有一个超级安全的密码,例如58htg%HF!c。要在不同的站点上使用此密码,请在站点开头添加一个特定于站点的项,以便您拥有以下密码:facebook58htg%HF!c,wellsfargo58htg%HF!c或gmail58htg%HF!c,如果我入侵您的facebook并获取facebook58htg%HF!c我将看到这种模式,并在其他可能会使用的网站上使用它。
一切都归结为模式。攻击者会在密码的特定于站点的部分和通用部分中看到模式吗?
这实际上取决于您要获得什么!
有多种方法可用于确定密码是否与另一个密码相似。例如,假设您使用密码卡,而其他人以某种方式拥有相同的密码卡(或只是知道您拥有哪一张)。如果他们泄露了您的密码之一,并且发现密码卡只是在密码卡的下方,那么他们很可能会猜测(甚至正确地)您的密码都是以类似的方式从该卡派生的。
但是,对于大多数情况而言,这根本不是问题。如果您在服务A上使用的密码与服务B上使用的密码只有一个字符不同,并且两个服务都是安全的(例如,为您的密码存储加盐的哈希值,而不是使用直接哈希或纯文本本身),那么它“在计算上是不可行的”确定密码是否相似,更不用说密码有多相似了。
一个简短的答案是:如果您的密码遵循任何一种模式,那么可以,一个密码的泄露很可能会导致其他密码的泄露。但是,这并不意味着这样做是可行的。只要你:
你应该还好 请记住,对于不同的服务始终使用不同的密码-不要简单地对所有内容使用相同的密码,甚至不要两次使用相同的密码。重要的是要防止愚蠢的公司在存储用户数据(例如密码)时拒绝遵循最佳实践。
我简单的回答是YES。例如:strongpassword + game.com遭到入侵,
如果我是一个贴花人,对我来说真的很容易理解您使用的模式并在其他网站上尝试。例如strongpassword + paypal.com
啊!
为了解决这个问题,我个人使用:
hash ( strongpassword+game.com )
hash ( strongpassword+paypal.com )
使用有关哈希的数学属性(我使用sha1),知道第一个密码很难发现StrongPassword和第二个密码。
如果您想了解更多详细信息,我在博客上发表了有关密码安全性的文章,该文章完全回答了您的问题:
http://yannesposito.com/Scratch/zh-CN/blog/Password-Management/
我还开发了一些工具来简化我所有密码的管理,因为您需要能够更改已泄露的密码,记住密码的最大长度等。
这取决于您所担心的。对于使用一个站点上其他站点的凭据进行的大规模自动攻击,攻击者将首先追踪最简单的部分-人们使用完全相同的密码。一旦用尽了,如果仍然没有注意到攻击,攻击者将寻找他认为是常见的模式-可能类似于基本密码+网站。
一个聪明的攻击者可以肯定自己的原始攻击(获得密码的攻击)未被注意到,会在使用她所窃取的密码之前进行此处理。在这种情况下,根据攻击者的明显程度,任何可预测的修改都是危险的。
例如,如果您的密码是前缀加上随机元素,并且攻击者怀疑这是什么,并且攻击者在另一个站点上拥有您的密码哈希,则他们可以更快地获取其他密码。
您可以通过对可预测的哈希进行哈希处理来创建密码,但是,如果这种做法非常普遍,或者您受到攻击者的个人关注,那将无法挽救您。在某些方面,密码强度是普及套利的问题。
tl; dr不做任何确定性的事情。
58htg%HF!c
无用了,非常感谢