상세 컨텐츠

본문 제목

Node.js / crypto module(단방향 암호화) / 해시 생성

프레임워크+라이브러리/Express

by moonionn 2020. 7. 17. 12:52

본문

crypto?

Node.js 내장 암호화 모듈입니다.

비밀번호를 데이터베이스에 저장하기 위해서는 암호화 과정을 필수로 거쳐야 합니다.

아래는 공식사이트에서의 crypto 설명란입니다.

https://nodejs.org/api/crypto.html#crypto_cryptonodejs.org/api/crypto.html

 

 

해시 생성(단방향 암호화)

해시를 생성하는 방법으로 암호작업을 하면, 결과값을 원래의 비밀번호로 복구시키지 못합니다.

즉, 복호화가 되지 않는다는 점이 특징입니다.

 

.createHash(algorithm:string, options)

createHash()는 말그대로 해시를 생성합니다.

createHash()에는 해싱 알고리즘이 매개 변수로 들어옵니다.

'sha256', 'sha512' 등이 대표적으로 쓰입니다.

const crypto = require('crypto');

const hash = crypto.createHash('sha512');

 

.update(data, inputEncoding)

update()는 생성된 해시에 암호데이터를 업데이트 해줍니다.

인코딩의 값을 따로 적어넣지 않고, 암호의 타입이 string이라면 자동으로 utf8을 적용합니다.

const crypto = require('crypto');

const hash = crypto.createHash('sha512')
                   .update('this is my password');

 

.digest(encoding)

마지막으로 해쉬 표기법을 정할때 사용되는 메소드입니다.

base64, hex, latin1 과 같은 인코딩방식이 매개변수로 들어옵니다.

인코딩 인자를 넣지 않으면 Buffer값이 결과로 나타납니다.

const crypto = require('crypto');

const hash = crypto.createHash('sha512')
                   .update('this is my password')
                   .digest('hex');
                   
//result: 9dd4c926e02225a393f5e628b793260969c26e61d7d6e6b829659d25cdc95a62d55b86a6c763009b789eae9429254f201126e561a097ff1482e7072c97a80dcf

관련글 더보기

댓글 영역