这有效
var scrypt = scrypt_module_factory();
var pwh=scrypt.crypto_scrypt(scrypt.encode_utf8("pleaseletmein"),
scrypt.encode_utf8("SodiumChloride"),
Math.pow(2,14), 8, 1, 224);
这失败
var scrypt = scrypt_module_factory();
var pwh=scrypt.crypto_scrypt(scrypt.encode_utf8("pleaseletmein"),
scrypt.encode_utf8("SodiumChloride"),
Math.pow(2,15), 8, 1, 224);
差异在于N参数是2 ^ 15而不是2 ^ 14
有什么想法吗?
Firebug控制台中的失败如下
uncaught exception: abort() at
wa@http://localhost/keybase/javascript/scrypt.js:10126:9
ua@http://localhost/keybase/javascript/scrypt.js:132:9
nc@http://localhost/keybase/javascript/scrypt.js:1266:9
bL@http://localhost/keybase/javascript/scrypt.js:4164:33
bu@http://localhost/keybase/javascript/scrypt.js:2168:33
crypto_scrypt@http://localhost/keybase/javascript/scrypt.js:10263:1
get_salt/<.success@http://localhost/keybase/javascript/main.js:91:1
jQuery.Callbacks/fire@http://code.jquery.com/jquery-latest.js:3119:1
jQuery.Callbacks/self.fireWith@http://code.jquery.com/jquery-
latest.js:3231:7
done@http://code.jquery.com/jquery-latest.js:9275:67
.send/callback@http://code.jquery.com/jquery-latest.js:9685:8
.send@http://code.jquery.com/jquery-latest.js:9691:7
.ajax@http://code.jquery.com/jquery-latest.js:9176:5
get_salt@http://localhost/keybase/javascript/main.js:95:9
@http://localhost/keybase/javascript/main.js:58:9
jQuery.event.dispatch@http://code.jquery.com/jquery-latest.js:4641:1
jQuery.event.add/elemData.handle@http://code.jquery.com/jquery-
latest.js:4309:1
答案 0 :(得分:2)
var scrypt = scrypt_module_factory(67108864);
解决了这个问题。感谢上面的Anton Samsonov。这是一个记忆问题。没有参数的初始化默认为32mb。如上所述初始化将内存使用量设置为64mb。