介绍
显然,此问题已在此处提出,但很遗憾已关闭。我认为再试一次是个好主意,但操作正确。
XKCD认为我们是如何使用“难以记住的密码”的培训的,认为它是安全的,但是要花3天的时间才能破解计算机。另一方面,记住4到5个单词会使Kuan的Password Intropy变得更容易记住。疯狂如何运作,是吧?
挑战
今天的工作是使用单词创建5个密码。每个密码4个单词,每个单词至少4个字母,但没有最大限制。需要为每个密码计算Kuan的密码熵,但不会设置强制最小值。
什么是关的密码熵?
Kuan说,Kuan的密码熵是对密码不可预测性的一种度量。有一个简单的计算:E =日志2(R)* L。E是关的密码熵,R是可用字符的范围,L是密码长度。
可用字符的范围不言自明。密码可以包含的字符范围,在这种情况下为大写和小写。由于字母中有26个字符,因此在整个密码范围内26 x 2 = 52个字符。
密码长度也是不言自明的。它是创建后密码的总长度。
约束条件
- 没有输入。
- 单词不能再次出现在相同的密码中。
- 密码中不允许使用符号或数字。
- 每个密码4个字,但每个字至少4个字母。
- 单词之间没有空格。
- 您不能一遍又一遍地生成相同的密码。
- 每个单词都必须用密码大写。
- 输出必须是人类可读的,必须隔开。还必须使用上面的Kuan's Password Intropy等式将密码的Kuan's Password Intropy包括在内。
- 字典。您必须使用它,将其下载为文本文件并进行相应集成。这将是您从中获取单词的列表。您的代码应假定其可用。
- 这是代码高尔夫球,最短字节获胜。
输出量
TriedScarProgressPopulation 153.9
TryingPastOnesPutting 119.7
YearnGasesDeerGiven 108.3
DoubtFeetSomebodyCreature 142.5
LiquidSureDreamCatch 114.0
N
集合中的符号S
,则密码熵为log2(|S|)*N
。这里符号集的大小是字典的大小(|S|=4284
),符号数是单词的数量(N=4
),因此每个密码的熵是48.3
。
3t1ta#asd
),那么熵将是可能的密码数量的对数。如果您总是从4284个单词的词典中随机选择4个单词,那么会有4284 ^ 4个密码,每个密码的熵为log 2(4284)* 4≈48.26。