首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >密码中允许使用哪些字符的最佳规则是什么?

密码中允许使用哪些字符的最佳规则是什么?
EN

Stack Overflow用户
提问于 2008-12-21 13:58:01
回答 9查看 6.1K关注 0票数 22

我根本没有想过它,我只想说我应该允许每个字符。它在任何情况下都会被散列,我不想限制那些想要创建强密码的人。

然而,仔细想一想,有很多角色我都不知道他们会对事情产生什么影响。外文字符、ascii符号等。

我试着在谷歌上搜索,但我找不到任何关于人们所做事情的权威标准。即使是大多数专业组织似乎也不知道。对于许多网站来说,完全禁止特殊字符似乎是一种常见的做法,这是愚蠢的,也不是我想做的。

不管怎样,对于长度、允许的字符数等等,有什么标准的建议吗?

我不确定这是否重要,但我将使用带C#的ASP.NET

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2008-12-21 14:08:45

密码中通常允许使用任何可打印的非空格ASCII字符(包含33和126 )。许多安全专业人士(以及评论者)建议使用passphrase代替密码,因此您必须留出空格。理由是,由于它们的长度,以及由于短语不在字典中,密码短语比密码更难破解。(密码短语也更容易记住,因此合法用户不必将其写在显示器上的便签纸上。)

一些strong password generators使用散列,所以为了包含,我对长度设置了一个非常高的限制(512或1024)。今天的密码生成器通常生成32-128个字符的字符串,但谁知道未来几年会使用什么哈希值。

票数 18
EN

Stack Overflow用户

发布于 2008-12-21 14:04:53

当涉及到在有限的设备(手机、控制台等)上输入密码时,非ASCII字符肯定会使事情变得更加困难-但通常不是不可能的。可以说,如果用户想要这样做,你应该让他们这样做。例如,在散列之前用UTF-8编码,做一件合理且一致事情就足够容易了。如果某些输入设备将字符作为组合发送(例如,e+急性重音而不是"e急性“),你才会遇到麻烦--但我怀疑在现实生活中不会发生这种情况。(您可以自己分解所有内容,但对于边缘情况来说,这将是一个很大的麻烦。)

不过,我会将其限制为可打印的字符。在密码中放入制表符、换页等确实是自找麻烦。

票数 9
EN

Stack Overflow用户

发布于 2008-12-21 14:00:25

不是专家,但我讨厌我选择的角色被拒绝,而不是那些奇怪的角色。所以,我想我同意你的直觉。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/384489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档