Как исправить ошибку crypto.pbkdf2 на node.js - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь добавить crypto.pbkdf2 в свою систему, и я продолжаю возвращать проблему с дайджестом при использовании mocha для проверки различных функций.Мой код для метода хеширования:

Account.prototype.hashPassword = function (password, salt, callback) {
// we use pbkdf2 to hash and iterate 10k times by default 
 var iterations = 10000,
    keylen = 64; //64 bit.
this.crypto.pbkdf2(password, salt, iterations, keylen,'sha1', callback);
};

Я пытался изменить дайджест ('sha1') на многие вещи, включая 'shah256', 'null' или дайджест.Но мои тесты все еще терпят неудачу с ошибкой:

 TypeError [ERR_INVALID_ARG_TYPE]: The "digest" argument must be one of type string or null. Received type undefined
  at check (internal/crypto/pbkdf2.js:56:13)
  at Object.pbkdf2Sync (internal/crypto/pbkdf2.js:45:5)
  at UserMock.seedUsers (test\user-mock.js:32:39)
  at Context.<anonymous> (test\account-test.js:296:27)

Как мне решить проблему, с которой я сталкиваюсь?

1 Ответ

0 голосов
/ 21 августа 2019

Вы, вероятно, уже исправили это, но на тот случай, если кто-то еще также имеет эту проблему - как я: функциональность функции crypto.pbkdf2Sync(password, salt, iterations, keylen, digest) изменилась в узле 6, чтобы сделать дайджест обязательно.Вплоть до узла 10, если дайджест не был предоставлен, тогда использовался 'sha1'.Но Node 10 требует этого.Обнаружение этого решило мое почти такое же чертово сообщение, как то, которое вы получали.

...