私はいくつかのピンコード/パスワードハッシュのためのユニットテストを作成しようとしています。私はこのエラーを早くも見つけ出しましたが、単純な.toString()
で解決できましたが、今はうまくいかないようです。Cryptographer TypeError:最初の引数は文字列でなければなりません
これは方法に関連する私のコードの一部です:いけないinconsistant心配
function getPasswordHash(password, salt) {
return new Promise((resolve, reject) => {
crypto.pbkdf2(password, new Buffer(salt, 'hex'), iterations, keyLength, 'SHA1', (err, result) => {
if (err) {
return reject(err);
}
return resolve(result.toString('hex'));
});
});
}
:
pin.model.spec.js:
let pin = Math.floor(1000 + Math.random() * 9000);
let hash = await Pincode.getHashedPincode(pin.toString(), salt);
crypto.jsメソッド名の間には、getHashedPincode
というメソッドがありますが、それ以外は何もしませんが、命名規則のためだけにgetPasswordHash
を呼び出します。 vars iterations
とkeyLength
は定数ファイルに由来します。だからそれは問題でもありません。
私は誰かが右方向に
EDIT私を導くことを願って:
これは全体getHashPincode
です:
Pincode.getHashedPincode = async (pincode, salt) => {
return cryptographer.getPasswordHash(pincode, salt);
};
私たちに 'getHashedPincode'を表示できますか? – taha
私は投稿を編集しました – Bas