비밀번호는 보통 단방향 암호화 알고리즘을 사용해서 암호화함
단방향 암호화 알고리즘은 주로 해시 기법을 사용
해시 기법이란 어떠한 문자열을 고정된 길이의 다른 문자열로 바꿔버리는 방식
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 결과 문자열이 가장 짧아 애용