为什么强密码中需要特殊字符。
某些网站要求输入特殊字符作为创建密码的必填项。
背后是否有任何技术原因?
当然。解释很长,而且超出了我的谦虚能力,因此您需要阅读Entropy in Information Theory的概念。 Wikipedia中的简单解释:
人为密码
众所周知,人们无法获得足够的熵以产生令人满意的密码。一些舞台魔术师通过区分观众成员的假定随机选择(例如数字),以较小的方式利用了这种无能为力的娱乐性。
因此,在对超过300万个八个字符的密码的分析中,字母“ e”被使用了150万次以上,而字母“ f”仅被使用了250,000次。如果均匀分布,每个字符将被使用大约90万次。最常用的数字是“ 1”,而最常用的字母是a,e,o和r。
用户很少在形成密码时充分利用较大的字符集。例如,2006年从MySpace网络钓鱼计划中获得的黑客攻击结果显示,共有34,000个密码,其中只有8.3%使用混合大小写,数字和符号。
注意,只有从密码集中随机选择每个密码时,才能获得与使用整个ASCII字符集(数字,大小写混合的字母和特殊字符)相关的全部优势。大写字母并在密码中添加一个或两个数字以及一个特殊字符将不会达到相同的强度。如果以可预测的方式添加数字和特殊字符(例如在密码的开头和结尾),则与相同长度的全字母随机密码相比,它们甚至可能降低密码强度。NIST特别出版物800-63
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9meUhiSC5qcGcifQ==” alt =“在此处输入图像描述”>“ >>
2004年6月的NIST特别出版物800-63建议采用以下方案来粗略估计人为生成的密码的熵:2
使用最新可用的现实世界数据对人为选择的密码熵进行的最新研究表明,NIST方案无法为人为选择的密码的熵估计提供有效的度量。可用性和实施注意事项The entropy of the first character is four bits; The entropy of the next seven characters are two bits per character; The ninth through the twentieth character has 1.5 bits of entropy per character; Characters 21 and above have one bit of entropy per character. A "bonus" of six bits is added if both upper case letters and non-alphabetic characters are used. A "bonus" of six bits is added for passwords of length 1 through 19 characters following an extensive dictionary check to ensure the password is not contained within a large dictionary. Passwords of 20 characters or more do not receive this bonus because it is assumed they are pass-phrases consisting of multiple dictionary words.
使用此方案,没有大写字母和非字母字符的8个字符的人为选择的密码估计具有18位的熵。 NIST出版物承认,在开发之时,关于现实世界中密码选择的信息很少。
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9oQm5zNS5qcGcifQ==” alt =“在此处输入图像描述”>
由于国家/地区键盘的实现方式各不相同,因此并非所有94个ASCII可打印字符都可以在所有地方使用。这会给希望使用本地计算机上的键盘登录远程系统的国际旅行者带来问题。请参阅键盘布局。许多手持设备,例如平板电脑和智能手机,需要复杂的移位序列才能输入特殊字符。
认证程序在密码中允许使用的字符不同。有些不能识别大小写差异(例如,大写的“ E”被认为等同于小写的“ e”),另一些则禁止某些其他符号。在过去的几十年中,系统允许在密码中使用更多字符,但是仍然存在限制。系统的允许密码最大长度也有所不同。
更多信息here
2)如果仅使用字母和数字,则猜测任意位置的字符的概率为1/62(存在62种可能性)。如果使用特殊字符(there are 32 of them),则概率降低到1/94。如果键入例如8个字符,则可以形成的可能组合的总数为a)如果您不使用特殊字符:62 ** 8 = 2.1834E + 14b)如果您确实使用特殊字符:94 ** 8 = 60.9569E + 14
因此,使用特殊字符的组合大约要多出30倍,这意味着,使用特殊字符来破解密码的时间要比不使用特殊字符来破解密码的时间长30倍,因为一个密码使用8个字符。