0

我想用 SCrypto 散列函数对密码进行散列,但如果我要使用默认参数,我会得到大约 5-6 秒的散列持续时间。我如何设置参数以使持续时间少于 1 秒(最好是 250 毫秒)

SCrypt.scrypt(通过,盐,n,r,p,长度)

默认 Scrypt(pass, salt, 16384, 8, 1, 长度)

4

1 回答 1

1

答案将在很大程度上取决于您的设备。但是,所花费的时间将大致与 N * r 成正比,因此如果当前需要 6 秒,N / 8(因为它是 2 的幂)应该让你不到 1 秒,而 N / 32 应该让你达到 ~250小姐。

但要小心,因为值太小会降低函数的整体安全性,甚至可能比 bcrypt 等久经考验的方法更糟糕:http: //blog.ircmaxell.com/2014/03/why-i-不要推荐-scrypt.html

另请注意,建议不要将 Scrypt 用作密码散列函数(用于存储),而是用作密钥派生函数(它的设计目的),其中不存储生成的密钥。

于 2017-07-03T23:23:25.647 回答