“您的密码不能包含空格。” 是我从一些网站上看到的一条消息,包括1。
为什么?(这个问题与Why Disallow Special Characters In a Password?非常相似,但那里的答案似乎不适用于空格字符)。
一些系统在散列密码之前显然会去除所有空格。(Google 怎么不关心应用程序专用密码中的“空格”?)
为什么不简单地散列用户输入的任何内容、空格和所有内容?
“您的密码不能包含空格。” 是我从一些网站上看到的一条消息,包括1。
为什么?(这个问题与Why Disallow Special Characters In a Password?非常相似,但那里的答案似乎不适用于空格字符)。
一些系统在散列密码之前显然会去除所有空格。(Google 怎么不关心应用程序专用密码中的“空格”?)
为什么不简单地散列用户输入的任何内容、空格和所有内容?
除了传统的疯狂之外,我无法将其解释为任何事情,或者在没有深思熟虑的情况下懒惰地将用户名限制复制到密码限制。
如果您对密码进行哈希处理,任何可打印或其他数据块都应该是可以接受的。唯一的限制应该是最小复杂度和“健全”的最大长度,这样某人每次登录时就不会占用 1MB 的带宽(以及相应的 CPU 时间来散列输入,因为您使用的是慢速算法,对吧?)。
对于不喜欢复制和粘贴的人来说,前导和尾随空格可能会带来麻烦。否则,同意其他帖子,没有充分的理由。
不过,我们还屏蔽了哪些其他角色?制表符,cr,lf,退格,哔☻☺♪▬♣。?
简单的答案是这是一个错误的密码策略。
我想不出禁止空格字符的特别好的理由。这可能只是一个好心但错误的人设定的一些任意要求。
除了阻止人们使用实际句子作为密码之外,我想不出任何可靠的安全理由,如果它们具有实际含义,那将是非常不安全的。严格来说,如果密码中的空格保持良好的熵,就没有什么不安全的了,所以人们“有创造力”是我能看到的唯一真实的东西。
可能还有一个可用性问题,即如果密码以可见的方式呈现,则很难在视觉上确保您键入的空格是正确的。(是一个空格还是 4,如果它出现 *s 那么它很容易可数。)