2017-09-07 2 views
1

나는 로그인에 다음 코드를 가지고 함수를 등록하는 데 사용 :"digest"라는 인수는 무엇을 제공해야합니까?

var crypto = require('crypto'); 
... ... 
this.hash = crypto.pbkdf2Sync(password, this.salt, 1000, 64).toString('hex'); 

을 그리고 난 이미 사용자를 등록했다.

어제, 나는 NPM 업데이트, 지금은 오류 보여줍니다

events.js:182 
     throw er; // Unhandled 'error' event 
    ^

TypeError: The "digest" argument is required and must not be undefined 
    at pbkdf2 (crypto.js:635:11) 
    at Object.exports.pbkdf2Sync (crypto.js:628:10) 
    at model.UserSchema.methods.validPassword (/opt/myapp/models/Users.js:35:23) 
    at /opt/myapp/config/passport.js:16:23 
    at model.Query.<anonymous> (/opt/myapp/node_modules/mongoose/lib/model.js:3745:16) 
    at /opt/myapp/node_modules/kareem/index.js:277:21 
    at /opt/myapp/node_modules/kareem/index.js:131:16 
    at _combinedTickCallback (internal/process/next_tick.js:131:7) 
    at process._tickCallback (internal/process/next_tick.js:180:9) 

그래서 누군가가 내가 crypto.pbkdf2Sync에게 제공해야하는지 digest 인수 알고 있나요은? 등록 된 사용자/비밀번호가 여전히 유효하기를 바랍니다. crypto.pbkdf2Sync을위한 Node.js를 문서에서

답변

1

:

const crypto = require('crypto'); 
const key = crypto.pbkdf2Sync('secret', 'salt', 100000, 512, 'sha512'); 
console.log(key.toString('hex')); // '3745e48...aa39b34' 

또한 이것이 digest parameter이 문서의 마지막 인수를 볼 수있는 인코딩 알고리즘 sha512을 지정해야합니다.

+0

'this.hash = crypto.pbkdf2Sync (password, this.salt, 1000, 64, "hex"). digest ('hex')'를 시도했지만 작동하지 않았습니다. – SoftTimur

+0

어떤 노드 버전을 사용하고 있습니까? –

+0

'node --version'은'v8.4.0'을 반환합니다. – SoftTimur

관련 문제