현재 nodejs 로 로그인 연습을 하고 있다. 그런데 비밀번호는 무조건 암호화를 해야한다는 사실을 알게 되었다.

(어찌보면 당연한 이야기 ㅋㅋㅋ....)

자세히는 모르지만 CRYPTO 라는 방식을 이용해서 간단하게 비밀번호를 암호화 하는 방법을 알아봤다.



먼저 CRYPTO 를 사용하기 전 CRYPTO 모듈설치를 해야한다. 

터미널에서 npm install --save crypto 를 해주고 paxkage.json 에 잘 설치 되었다 확인한 뒤 모듈을 사용하면 된다.


const crypto = require('crypto')


이렇게 적어 주면 사용할 준비가 완료.



암호화는 단방향 암호화와 양방향 암호화가 있다. 단방향 암호화에 대하여 알아 볼 건데 단방향 암호화는 복호화 할 수 없는 암호화 방법이다. 

즉, 암호화된 문자열을 다시 원래 문자열로 돌려놓을 수 없다는 뜻이다. 따라서 단방향 암호화는 한 번 암호화하면 복호화할 수 없다.



crypto를 이용해서 단방향 암호화를 할 것 이다.

먼저 크립토 모듈을 불러와서 createHash 메소드를 사용한다.

먼저 기본 틀은 이렇다.


crypto.createHash(1).update(2).digest(3)



createHash 의 1에는 어떠한 알고리즘으로 암호화를 할 것인지 정하는 것인데 ( sha256, sha512 등이 있음 ) 나는 sha512 를 사용하겠다.


crypto.createHash('sha512').update(2).digest(3)



그다음 update 옆에 2에는 어떤 것을 암호화 할 것인지를 정해주면 된다.  비밀번호를 하나하나 다 치진 않을 것이기 때문에 변수 pw 를 넣어줬다. 



crypto.createHash('sha512').update(pw).digest(3)



 마지막으로 암호화된 문자열을 표시할지를 정해준다. ( base64, hex, latin1 등의 방식이 있다.)  나는 hex 방식을 사용하겠다.



crypto.createHash('sha512').update(pw).digest('hex')


이렇게 해준 뒤



function createPW(pw) {

  return crypto.createHash('sha512').update(pw).digest('hex')

}



함수로 묶어주면 암호화 하고싶은 비밀번호가 생길때마다 함수를 호출해주기만 하면 끝이다.

+ Recent posts