const crypto = require('crypto');
crypto.createHash('sha512').update('pwex1234').digest('base64');
//이렇게 해시함수를 통해 암호화된 값으로 변경하여 DB 저장
//sha512외의 다른 해시 알고리즘 사용예정
//인코딩 알고리즘으로 base64,hex,latin1 등등...
//해시 충돌 조심
crypto.randomBytes(64,(err,buf)=> {
const salt = buf.toString('base64');
crypto.pbkdf2('pwex1234',salt,100000,64,'sha512');
});
//randomBytes로 64바이트 길이 문자열 -> salt에 저장
//pbkdf2() 비밀번호('pwex1234')에 salt를 붙여 해시 알고리즘('sha512')로 암호화를 100000번 반복
//crypto.randomBytes(),crypto.pbkdf2() 내부적인 스레드 풀로 작동, 멀티 스레딩 메서드
//bcrypt,scrypt 방식이 더 안전