scrypt实现是否具有最大输入长度(密码)?

时间:2014-08-05 06:43:51

标签: scrypt

特别是this。我知道大多数bcrypt实现大约有50个字符,但我很确定scrypt的情况并非如此。

2 个答案:

答案 0 :(得分:1)

来自scrypt继任者的开发者:

  

...与scrypt和yescrypt相关的问题。有最大值吗?   密码的输入长度?

对于你问题的可能目的,不,没有这样的长度 限制。 (当然,在实践中,计算机的内存和整数有限 C中的变量具有有限的范围,因此存在某种大的限制。)

我建议你对用户名的长度有一些合理的限制 无论如何,在您的网络应用程序输入密码。永远不会有的东西 妨碍合理使用,但会明显阻止 进入更深层次的错误(可能是恶意的)输入。

  

我知道bcrypt的限制为71个字符。

bcrypt是72。

亚历山大

答案 1 :(得分:0)

应该注意的是,scrypt基本上 PBKDF2用于其大部分工作。

PBKDF2的基本用途是:

bytes = PBKDF2(
      password, 
      salt, 
      numberOfBytes);

Scrypt是产生供给PBKDF2的盐的美化方式:

bytes = PBKDF2(
      password, 
      ScryptMixingStuff(password, originalSalt, N, r, p),
      numberOfBytes);

所以问题就变成了:PBKDF2中的密码长度限制是什么。

There is no practical password length limitation of PBKDF2。所以scrypt没有实用的密码长度限制。