bcrypt?
가끔 뉴스를 보면 커뮤니티사이트가 해킹되었지만 어느 사이트는 바로 비밀번호를 바꾸라고 권장하고 어느사이트는 걱정하지 않아도 된다고 합니다. bcrypt
는 암호화 하는 과정에 salt
를 이용하여 매번 결과가 다르게 출력됩니다.
하지만 md5 hash
암호화는 같은 password
라는 단어를 암호화 하게 되면 항상 5f4dcc3b5aa765d61d8327deb882cf99
를 반환합니다. 따라서 암호를 복호화 하는 과정이 매우 복잡하기 때문에 다른 hash함수
를 이용하여 암호화하는 방법보다 더 안전하다고 할 수 있습니다.
bcrypt 사용 방법
1 | npm install bcrypt |
터미널에서 위 코드를 실행하여 bcrypt
를 설치합니다.
1 | const bcrypt = require('bcrypt') |
사용할 자바스크립트 파일에서 위 코드를 요청하여 bcrypt
를 활성화 해줍니다.
1 | const hashed_password = bcrypt.hashSync(password, 10) |
위 코드처럼 password
를 bctypt
를 이용하여 암호화해 줄 수 있습니다. 괄호 안의 10이란 숫자는 2^10번 연산하라는 것입니다.
1 | const matched = bcrypt.compareSync(password, user.hashed_password) |
위 코드는 암호화된 코드와 user가 입력한 코드를 비교하는 코드입니다. compareSync
를 이용하여 앞의 password
와 뒤의 user.hashed_password
를 비교하게 됩니다.