현재 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')
}
함수로 묶어주면 암호화 하고싶은 비밀번호가 생길때마다 함수를 호출해주기만 하면 끝이다.
'코딩공부' 카테고리의 다른 글
피로그래밍 9기 RECRUITMENT 대비 ( jump to PYTHON - 7) for 문 (0) | 2018.06.15 |
---|---|
피로그래밍 9기 RECRUITMENT 대비 ( jump to PYTHON - 6) while문 (0) | 2018.06.15 |
2018-06-11 코드리뷰하며 새로 배운점. (0) | 2018.06.11 |
피로그래밍 9기 RECRUITMENT 대비 ( jump to PYTHON - 5) if문 (0) | 2018.06.11 |
피로그래밍 9기 RECRUITMENT 대비 ( jump to PYTHON - 4) 튜플 자료형 (0) | 2018.06.08 |