본문 바로가기

Node js

암호화

반응형

로그인, 비밀번호 수정 기능 구현에 앞서 암호화 알고리즘에 대해서 정리해보도록 하겠습니다.

 

1) SHA-256

SHA-256 은 동일한 문자열에 대해 동일한 다이제스트를 출력합니다.

다른 문자열인 경우 다른 다이제스트를 출력하게됩니다.

이때, 동일한 문자열을 누군가 입력해서 비교하게 되면 해킹이 가능하므로

서버단에서 원본 문자열에 "특정문자열"을 추가하여 암호화를 하게 되면 더 안전하게 됩니다.

이 "특정문자열"을 salt라고 합니다.

Node js 에서 이 기법을 적용하기 위해선 bkfd2Password 라이브러리를 사용하면 됩니다.

작성 예시는 아래와 같습니다.

var hasher = bkfd2Password();

hasher({password:password},function(err,pass,salt,hash){

   if(err){

     resolver.resolve(err)

   }else{

     password = hash

     resolver.resolve(salt)

  }

})

 

암호화 하고자하는 원본 문자열을 첫번째 인자에 넣으면 callback function이 호출되게 됩니다.

callback function 의 인자로 에러, 원본 문자열, 암호화에 사용된 salt 값, 마지막으로 암호화된 값이 있습니다.

 

2) RSA

SSL/TLS 에 가장 많이 사용되는 비대칭 암호화 방식입니다.

비대칭키란, 암호화할때의 키와 복호화할 때의 키가 다르다는 의미로 암호화 할 때 "공개키", 복호화 할 때 "개인키"를 사용하게 됩니다.

즉, 공개키로 암호화된 내용은 개인키로만, 개인키로 암호화된 내용은 공개키로만 해독 가능합니다.

실제 구현을 위해선 클라이언트에서 "공개키"로 데이터를 암호화하여 서버로 전달합니다.

이를 위해선 클라이언트는 "공개키"를 안전한 장소에 보관하고 서버는 "개인키"를 안전한 장소에 보관해야합니다.

 

 

반응형

'Node js' 카테고리의 다른 글

HashBang  (0) 2020.08.27
openldap with ldapjs  (0) 2020.07.30
node js 특징  (0) 2020.02.24
node js 01  (0) 2020.02.20
Node js 설치 및 Eclipse plugin 설치  (0) 2020.02.08