Php 将多个空白值转换为制表符值以存储密码

Php 将多个空白值转换为制表符值以存储密码,php,passwords,ascii,Php,Passwords,Ascii,我不知道;这可能是一个疯狂或完全不专业的新手问题。但是,将四个空格转换为密码字段的制表符是一个好的选择吗 下面是我想做的-每当用户在密码字段中输入密码时;我想修剪左右空白,如果有的话!在字符串中间,如果用户将四个空格转换为Tab键值,反之亦然?然后散列该值 我想提到的是,密码字段将接受空白,密码字段不仅限于英文字符集 这是个好习惯吗 修剪起点和终点绝对是一种好的做法 但是,将空白字符转换为制表符将是一个非常糟糕的主意。用户如何才能登录?当他们按下密码框中的Tab按钮时,浏览器将焦点从密码框移到页

我不知道;这可能是一个疯狂或完全不专业的新手问题。但是,将四个空格转换为密码字段的制表符是一个好的选择吗

下面是我想做的-每当用户在密码字段中输入密码时;我想修剪左右空白,如果有的话!在字符串中间,如果用户将四个空格转换为Tab键值,反之亦然?然后散列该值

我想提到的是,密码字段将接受空白,密码字段不仅限于英文字符集


这是个好习惯吗

修剪起点和终点绝对是一种好的做法

但是,将空白字符转换为制表符将是一个非常糟糕的主意。用户如何才能登录?当他们按下密码框中的Tab按钮时,浏览器将焦点从密码框移到页面上的下一个控件。他们无法在密码中键入选项卡


保留密码中间的任何空间。

伟大的是,你计划删除领先/尾随空间,但是我不认为有理由将这些空间改为制表符,因为这只是一个额外的步骤,然后加密它们。 如果没有很好的理由放东西进去,通常最好是。。。不放进去 编辑:我假设登录时会有相同的检查


ps:这种类型的问题并不适合StackOverflow,但因为它涉及个人意见

可以讨论修改密码,我自己认为这是个好主意

虽然修改密码不会给你带来任何好处,甚至可能是有害的。假设您在存储密码之前正确地对密码进行了散列,那么您可以将更改视为散列算法的附加部分。无论您做了什么更改,密码的熵都不能通过算法增加,密码也不能变得更强大。另一方面,它可以降低熵。一个简单的例子:

相同的密码,一次使用4个空格,一次使用单个选项卡,将产生相同的哈希值


因此,如果您愿意,可以使用经过修剪的密码以方便使用,但密码的内容不能更改。

实际上,这只是一个示例。只是为了加强密码。用户每次将输入四个空格。只是我的登录脚本将这4个空格压缩为选项卡键值并存储;或者另一个例子是,如果用户使用字符“e”;我将其更改为“3”。。每次登录检查得到“e”字符时,将其转换为“3”,然后比较db中的散列值。@oxvoxic我假设在寄存器和登录上都使用它,但是我会使用一种经过验证的加密方法,例如使用自定义密码作为实际安全存储的额外盐,并坚持删除实际未加密密码的前导/尾随空格看起来像是一个很好的示例资源:没有使用它,但示例乍看起来很好实际上这只是一个示例。只是为了加强密码。用户每次将输入四个空格。只是我的登录脚本将这4个空格压缩为选项卡键值并存储;或者另一个例子是,如果用户使用字符“e”;我将其更改为“3”。。每次我的登录检查得到“e”字符时,将其转换为“3”,然后比较db中的散列值。但是,例如,如果用户将其密码设置为“hello”,而您将其转换为“h3110”,他们如何知道自己的密码?