Vol*_*ike 10 php regex passwords filter preg-replace
使用PHP,我想对密码使用preg_replace()过滤器,以便密码可用的唯一字符是US ASCII typable,减去控制代码和NULL.
什么是RegEx来实现我可以插入preg_replace()的那个?
编辑:
我被建议编辑这个问题,因为我现在"得到它"并且不会做这种非常不受欢迎的技术并且允许任何可打字的字符,即使是我可能没有在键盘上的字符,只要它们不是控制代码.
Dav*_*man 19
正如其他人所说,不要限制密码中允许的字符集.仅仅因为你的键盘上没有ä,å或ö就没有理由阻止那些使用这些字母的人(或无论如何键入它们).您无论如何都要将密码存储为加密哈希(或者至少作为加密字符串),不是吗?如果是这样,那么数据库是否可以成功/安全地将实际字符存储在密码中无关紧要,只考虑加密算法输出的字符.(如果没有,那么将密码存储在明文中比密码可能包含或不包含的字符要大得多 - 请不要这样做!)
通过静默剥离您不喜欢的角色而不是告诉用户"再试一次,这次只使用这些字符:a,e,i,o,u",你明显有意强制执行字符集限制.使你提出的方法真的很残酷,因为这意味着如果我试图使用密码fäîry(不是非常安全,但应该阻止轻量级字典攻击),我的实际密码将是fry(如果你的密码)是一个三个字母的单词,直接在字典中并且在常用中,你甚至可以不打扰).哎哟!
Tom*_*lak 10
就个人而言,当网站或服务试图强迫我使用遵循某种(通常是彻头彻尾的愚蠢)限制的密码时,我总是觉得非常令人不安.
这不是密码的全部意义,它们不容易猜到吗?为什么你希望它们不像用户想要的那么复杂?我无法想象技术限制需要使用"仅ASCII"密码.
让您的用户使用他们喜欢的任何密码,散列它们并将它们存储为Base64字符串.这些只是ASCII.