word1 = "quick"
word2 = "brown"
word3 = "vixen"
所以
password = "qbvuriioxcwnknn"
它似乎强烈反对字典攻击和暴力强迫。有没有一种方法可以解决这个问题?
答案 0 :(得分:0)
绝对是信息安全堆栈交换的问题(正如Thriggle在评论中指出的那样),但无论如何,我都会提出一些想法。
如果你插入单词的字母,你会遇到一些优点和一些缺点:
当我发现密码中字母的概率是这个系统最有趣的负面影响时,我会进一步深入研究。
如果我知道你的密码使用了三个相互交错的5个字母的单词,那么我会先用英语中所有五个字母单词的字典开头,然后从以下列之一开头的单词开头:{ {1}}(英语单词中最常见的第一个字母)从该子列表中,我会选择以t o a w b c d s f m r h i y e g l n p u j k
(英语单词中最常用的最后一个字母)结尾的单词,然后进行组合和交错。毕竟,对于每个3个单词的系列,只有3个可能的选项。
在最糟糕的情况下,我发现您使用了e t d s
,zymes
,zamia
。但是,即使您确实使用了最后一个可能的单词组合,我仍然会在相对较短的时间内找到您的密码,而使用甚至15个随机base64字符,因为只有323,727,260,476(323.7亿)组合5个字母的英文单词( 使用相当完整的12,478个单词的5个字母的英文单词)。另一方面,如果您只使用了15个随机的Base64字符,那么可能会有1.2个可能的组合( zooid
)。
现在,所有这些都说,这是假设攻击,我知道你使用了三个5个字母的英文单词。如果我什么都不知道,我仍然会尝试一个字典,然后是15个base64字符的组合,那么密码就完全没问题,因为我永远无法强制它。但是,这里的关键弱点是,如果我知道您的密码模式,那么很多安全性会立即丢失,因为模式并不过分复杂。所以这个密码方案是一个通过默默无闻的安全案例。 (通常不鼓励。)