Ошибка шифрования NodeJs - у объекта нет метода pbkdf2Sync
Я использую крипто-модуль nodeJS для шифрования пароля.
Образец кода:
crypto.pbkdf2Sync(password, salt, 200, 64).toString('base64');
Но я не уверен, что всякий раз, когда я вызываю этот метод, появляется следующая ошибка
Ошибка типа: у Object # нет метода 'pbkdf2Sync'
Пожалуйста, дайте мне знать, в чем проблемы
Спасибо всем
1 ответ
pbkdf2Sync
был добавлен в модуль Crypto в версии 0.9.3.
Вы можете либо обновить вашу установку узла до 0.9.3 или выше, либо использовать асинхронную версию функции, crypto.pbkdf2
, который требует обратного вызова.
Если ваш предыдущий код был похож
var result = crypto.pbkdf2Sync(password, salt, 200, 64);
var encodedResult = result.toString('base64');
doStuff(encodedResult);
Тогда асинхронный код может выглядеть так:
crypto.pbkdf2Sync(password, salt, 200, 64, function(err, result) {
var encodedResult = result.toString('base64');
doStuff(encodedResult);
});
Это всего лишь пример; полное обсуждение синхронных и асинхронных операций значительно выходит за рамки этого вопроса. Один хороший обзор темы: как мне вернуть ответ от асинхронного вызова?