【发布时间】:2023-04-10 18:24:02
【问题描述】:
我不知道;可能是看起来很疯狂或完全不专业的新手问题。但是,将四个空格转换为密码字段的制表符是一个不错的选择吗?
这就是我想要做的——每当用户在密码字段中输入密码时;我想修剪左右空格(如果有的话)!如果用户在字符串中间放置四个空格,则将其转换为 TAB 键值(反之亦然??),然后对值进行哈希处理..
我想提一下,密码字段将接受空格,并且密码字段不仅限于英文字符集。
这是好的做法吗?
【问题讨论】:
我不知道;可能是看起来很疯狂或完全不专业的新手问题。但是,将四个空格转换为密码字段的制表符是一个不错的选择吗?
这就是我想要做的——每当用户在密码字段中输入密码时;我想修剪左右空格(如果有的话)!如果用户在字符串中间放置四个空格,则将其转换为 TAB 键值(反之亦然??),然后对值进行哈希处理..
我想提一下,密码字段将接受空格,并且密码字段不仅限于英文字符集。
这是好的做法吗?
【问题讨论】:
修剪开头和结尾绝对是一个好习惯。
但是,将空白字符转换为制表符是一个非常糟糕的主意。用户将如何登录?当他们在密码框中按下 Tab 按钮时,浏览器会将焦点从密码框移到页面上的下一个控件。他们无法在密码中输入 Tab!
保留密码中间的空格。
【讨论】:
大家可以讨论一下密码的修整,我个人认为是个好主意。
虽然更改密码不会给您带来任何好处,甚至可能是有害的。假设您在存储密码之前正确地散列密码,您可以将更改视为散列算法的附加部分。无论您进行何种更改,密码的熵都无法通过算法增加,密码无法变得更强。另一方面,它可以降低熵。一个简单的例子:
相同的密码,一次有 4 个空格,一次只有一个制表符将产生相同的哈希值。
因此,如果您愿意,可以使用修剪过的密码,但不要更改密码的内容。
【讨论】:
很高兴您计划删除前导/尾随空格,但是我认为没有理由将这些空格更改为制表符,因为这只是加密它们之前的一个额外步骤。
如果没有充分的理由放入某些东西,通常最好……不要放入
(编辑:我假设登录时会进行相同的检查)
(ps:这类问题并不适合StackOverflow,因为它涉及个人意见)
【讨论】: