2

我一直在使用这个库,我真的很喜欢它,但从我读到的内容来看,PBKDF2 比 bcrypt 或 scrypt 更容易受到暴力攻击。我遇到了这个关于添加 scrypt 支持的问题,但似乎没有一个明确的答案。

理想情况下,我想简单地替换 PBKDF2 功能,但我对 SJCL 的内部运作不够熟悉,不知道这是否可能。

如果可能的话,我想你可以很容易地使用像这种纯 JS bcrypt实现这样的东西。

4

1 回答 1

3

是的,这是可能的,但需要更多的手动工作。首先你需要用 scrypt 编译 sjcl:

./configure --with-scrypt
make

然后你将不得不使用 scrypt 来生成一个密钥对:

var salt = sjcl.random.randomWords(2,0);
var key = sjcl.misc.scrypt(password, salt);
var encrypted = sjcl.json.encrypt(key, original);
var decrypted = sjcl.json.decrypt(key, encrypted);
于 2016-03-27T14:53:05.650 回答