首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我应该有最大的密码长度吗?

我应该有最大的密码长度吗?
EN

Security用户
提问于 2011-08-15 18:34:18
回答 3查看 5.8K关注 0票数 28

我正在创建一个webapp,我的认证方法的一部分是密码长度。

我该放一个吗?(比如说,50个字符?)或者我应该设置一个最小长度(目前为6)。

没有最大长度有问题吗?

EN

回答 3

Security用户

回答已采纳

发布于 2011-08-15 18:51:28

您应该使用使用安全算法散列密码而不是将其存储在明文中。不管输入字符串的长度如何,哈希函数都会产生一个恒定的输出大小。

使用最小长度或者其他一些质量规则是个好主意,因为它有助于防止懒惰。

如果您害怕拒绝服务攻击,您可以为普通输入字段设置服务器端限制,例如1000字节。不太可能有人想要使用这么长的密码。

票数 34
EN

Security用户

发布于 2011-08-15 18:50:39

我的建议: 1,024字节。

对密码大小的限制是由于过时的技术要求而存在的限制。现代密码存储应该依赖散列,这使得密码存储字段成为一个固定的大小,而不管密码长度如何。我们不希望看到1mb的密码,因为它只是表示有人试图导致拒绝服务。我想我永远不会看到人类使用1024字符(或更长的)密码。我认为这是一个足够小的价值,足以防止任何真正的DOS和一个很高的价值永远达不到任何合理的情况。

票数 24
EN

Security用户

发布于 2011-08-17 17:02:29

这取决于您使用的消息摘要函数。对于大多数人(sha-256,甚至md5,sha1等.)无所谓。但是,如果您使用的是bcrypt,那么bcrypt有一个55字符的限制。所以,如果你的盐是27个字节,你可以有28个字节的密码。

另外,CWE-521确实要求您有一个最大的密码长度。但是,它没有说明最大值,而且从安全性说明中,我看不出它可能是512 K字节或更多的任何原因。

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

https://security.stackexchange.com/questions/6287

复制
相关文章

相似问题

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