Closed sergeevabc closed 9 years ago
Как и все асинхронное в JavaScript, нужно писать продолжение кода в коллбеке:
scrypt(masterkey, salt, N, r, dkLen, step, function(result) {
// тут дальнейшие манипуляции с result и остальной код.
}, "hex");
Если null
, выдаст Array
с байтами.
Как я понимаю, здешний коллбек относится к тому, что делать после подсчёта результата. А возможен коллбек о статусе операции? См. у Amandam, OneShallPass и Triplesec. Так нагляднее.
Да, именно. Согласен насчет статуса.
Добавил issue — #2
Дмитрий, продолжаю по второстепенному вопросу о формате вывода. Сравним:
var result = sha256.pbkdf2(password, salt, 150000, 32);
даёт [object Uint8Array]
scrypt(password, salt, 15, 8, 32, 200, function(result) {...}, null);
даёт 181,253,53,216,124…
Почему так? Может быть, лучше то и другое привести к одному?
scrypt-async-js
совместим со старыми браузерами, поэтому не может использовать Uint8Array
. Можете сделать var resultBytes = new Uint8Array(result)
.
Дмитрий, я прям теряюсь при знакомстве с вашими инструментами. :) Сейчас вот гадал, чего это Scrypt не работает.
var result = scrypt(masterkey, salt, cost, blocksize, dklen, step, null, "hex");
object is not a functionvar result = scrypt(masterkey, salt, cost, blocksize, dklen, step, function(){}, "hex");
undefinedscrypt(masterkey, salt, cost, blocksize, dklen, step, function(res){document.getElementById("result").value = res;}, "hex");
ура, получилосьГлавный вопрос: можно ли допилить scrypt, чтобы привычно получать результат в переменную? Или, может быть, я придерживаюсь устаревшей практики, тогда подскажите, как грамотнее.
Второстепенный: если вместо hex указать null, то приходят числа через запятую, примерно так
223,167,126,190,189,229,104,254,42,238,248,65,167,36,135,41,113,133,212,189,192,108,199,187,160,239,56,7,100,124,89,143
, а что это? Ожидал неразберихи, которую можно сконвертировать по своему вкусу, необязательно в hex или base64 (например, в base85 zeromq, где спецсимволов больше или в base32/58, где спецсимволы отсутствуют).P.S. Приятно, что сюда вы включили перевод строки в UTF8, т.е.
masterkey, salt
пишу без обёртки.