익명의 개발노트

9.[암호화처리] 회원가입시 비밀번호 암호화처리 본문

프로그래밍/NodeJS

9.[암호화처리] 회원가입시 비밀번호 암호화처리

캡틴.JS 2019. 6. 28. 02:58
반응형

1. 암호화 방법에는 크게 단방향과 양방향 암호화로 구분한다.  

    1) 단방향은 한번 암호화 하면 복호화 할 수 없다.

    2) 양방향은 비대칭형과 대칭형으로 나뉜다.

2. 고려사항 

   1) 암호화 모듈 종류는 여러개가 있다. md5 , sha256, sha1, crypto, bcrypto 등등/

    2) 이중에서 해커에게 뚤린적이 있는 md5, sha1 모듈은 사용하지 않는다.

3. crypto는 노드 6버전부터 내장모듈로 변경 되었다.

    1) crypto에는 pdkdf2Sync라는 메소드를 사용했다.(사용법이 매우 간결하다)

        pdkdf2Sync는 pdkdf2의 향상된 버전. 

       둘의 차이점은 pdkdf2은 인자값으로 콜백함수를 받을 수 있고, pdkdf2Sync는 5가지 밖에 받을 수 없음.

비밀번호 저장시 반드시 toString('hex')를 해주어야 암호화된 문구가 16진수로 표현된다.

hex말고 base64는 64진수로 표현된다.

const key = crypto.pbkdf2Sync(user_pw, 'salt', 100000, 64, 'sha512').toString('hex');

 

참고자료.

https://www.zerocho.com/category/NodeJS/post/593a487c2ed1da0018cff95d

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

반응형
Comments