암호 해시 함수를 테스트하려고하지만 일부 TypeError 오류로 인해 오류가 계속 발생합니다.node.crypto 함수를 테스트 할 때 모카 오류 발생
다른 파일에서 호출하려고했기 때문에이 함수가 작동하고 예상 한 결과가 오류없이 발생하므로이 함수가 작동한다고 확신합니다. 여기
exports.hashPassword = (password) => {
return new Promise((resolve, reject) => {
crypto.randomBytes(salt_length, (err, buf) => {
if (err) reject(err);
const salt = buf.toString('base64');
crypto.pbkdf2(password, salt, iterations, keylen, digest, (err, key) => {
if (err) reject(err);
const hashedPassword = '{X-PBKDF2}:'+digest+':'+keylenB64+':'+iterationsB64+':'+salt+':'+key.toString('base64');
resolve(hashedPassword);
});
});
});
};
실패 테스트입니다 : : 여기
는 기능입니다
describe('users',() => {
describe('utils',() => {
it('should hash a password', (done) => {
const password = 'secret';
utils.hashPassword('secret')
.then((hash) => {
console.log('Hash: '+ hash);
done();
})
.catch((err) => {
console.log(err);
done(err);
});
});
});
});
을 그리고 이것은 '오류'입니다 :
1 failing
1) users utils should hash a password:
TypeError: size must be a number >= 0
at Promise (api\paths\users\utils.js:24:12)
at Object.exports.hashPassword (api\paths\users\utils.js:14:10)
at Context.it (api\paths\users\utils.test.js:30:13)
사람 어떤 생각 이유를 가지고 ?
저는 mocha
과 should
을 사용하고 있으며 node
으로 발전하고 있습니다.
오류를 던지고 기능이다 명확하지 않다. 명확히 해 주시겠습니까? – pietrovismara
물론, 'utils.js'라는 파일에있는 하나의 함수'hashPassword()'만 있습니다. 이제, 'at Promise (api \ paths \ users \ utils.js : 24 : 12)'에서 오류의 위치를 물으면 'crypto.randomBytes' 암호가 처음 사용됩니다. – Johnny
글쎄, 이미 crypto.randomBytes에 전달할 크기를 확인하여 0보다 크거나 같습니까? – pietrovismara