Ошибка шифрования 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);
});

Это всего лишь пример; полное обсуждение синхронных и асинхронных операций значительно выходит за рамки этого вопроса. Один хороший обзор темы: как мне вернуть ответ от асинхронного вызова?

Другие вопросы по тегам