是否可以使用bcrypt或scrypt替代SJCL中的PBKDF2?

时间:2016-03-26 21:22:46

标签: javascript bcrypt scrypt sjcl

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

理想情况下,我想简单介绍一下PBKDF2功能的替代品,但我对SJCL的内部工作原理并不熟悉,知道这是否可行。

如果有可能,你可以很容易地使用像pure JS bcrypt这样的实现。

1 个答案:

答案 0 :(得分:2)

是的,这是可能的,但需要更多的手工工作。 首先,您需要使用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);