Nodejs 암호화 처리 패키지 Bcrypt

비밀번호 같은 중요한 정보를 암호화 시키는 패키지로 Bcrypt 를 사용한다

Bcrypt

사용량
weekly downloads 가 60~70만

설치

1
npm install bcrypt

사용방법

사용
비밀번호 저장시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const bcrypt = require('bcrypt');
const saltRounds = 10;
const myPlaintextPassword = 's0/\/\P4$$w0rD';
const someOtherPlaintextPassword = 'not_bacon';

//방법 1. generate a salt and hash
bcrypt.genSalt(saltRounds, function(err, salt) {
bcrypt.hash(myPlaintextPassword, salt, function(err, hash) {
// Store hash in your password DB.
});
});

//방법 2. auto-gen a salt and hash
bcrypt.hash(myPlaintextPassword, saltRounds, function(err, hash) {
// Store hash in your password DB.
});

비밀번호 비교시

1
2
3
4
5
6
7
8
//result 값이 true, false 로 로그인 프로세스를 처리하면 된다
// Load hash from your password DB.
bcrypt.compare(myPlaintextPassword, hash, function(err, result) {
// result == true
});
bcrypt.compare(someOtherPlaintextPassword, hash, function(err, result) {
// result == false
});

async/await 로 사용

1
2
3
4
5
6
7
8
9
10
11
async function checkUser(username, password) {
//... fetch user from a db etc.

const match = await bcrypt.compare(password, user.passwordHash);

if(match) {
//login
}

//...
}