[Node.js] 단방향 암호화

비밀번호는 보통 단방향 암호화 알고리즘을 사용해서 암호화함
단방향 암호화 알고리즘은 주로 해시 기법을 사용
해시 기법이란 어떠한 문자열을 고정된 길이의 다른 문자열로 바꿔버리는 방식

1
2
3
4
5
const crypto = require('crypto');

console.log('base64:', crypto.createHash('sha512').update('비밀번호').digest('base64'));
console.log('hex:', crypto.createHash('sha512').update('비밀번호').digest('hex'));
console.log('base64:', crypto.createHash('sha512').update('다른 비밀번호').digest('base64'))
1
2
3
4
% node hash.js
base64: dvfV6nyLRRt3NxKSlTHOkkEGgqW2HRtfu19Ou/psUXvwlebbXCboxIPmDYOFRIpqav2eUTBFuHaZri5x+usy1g==
hex: 76f7d5ea7c8b451b773712929531ce92410682a5b61d1b5fbb5f4ebbfa6c517bf095e6db5c26e8c483e60d8385448a6a6afd9e513045b87699ae2e71faeb32d6
base64: cx49cjC8ctKtMzwJGBY853itZeb6qxzXGvuUJkbWTGn5VXAFbAwXGEOxU2Qksoj+aM2GWPhc1O7mmkyohXMsQw==

createHash(알고리즘)

사용할 해시 알고리즘
md5, sha1, sha256, sha512등이 가능, 현재는 sha512정도로 충분

update(문자열)

변환할 문자열

digest(인코딩)

인코딩할 알고리즘
base64, hex, latin1이 주로 사용, 그중 base64 결과 문자열이 가장 짧아 애용