← 목록

bcrypt를 활용한 안전한 비밀번호 보관 방법

작성: 2025년 10월 12일읽기: 약 3분

비밀번호는 우리의 디지털 생활에서 중요한 역할을 합니다. 하지만, 이 비밀번호들을 어떻게 안전하게 보관할 수 있을까요? 오늘은 bcrypt라는 도구를 사용하여 비밀번호를 안전하게 보관하는 방법에 대해 알아보겠습니다.

bcrypt란 무엇인가요?

bcrypt는 비밀번호를 암호화하는 데 사용되는 함수입니다. 이 함수는 비밀번호를 '해시'하는 과정을 거쳐, 원래의 비밀번호를 알아볼 수 없는 문자열로 변환합니다. 이렇게 변환된 문자열을 데이터베이스에 저장함으로써, 실제 비밀번호가 노출되는 것을 방지할 수 있습니다.

bcrypt 사용 방법

bcrypt를 사용하여 비밀번호를 안전하게 저장하는 방법은 다음과 같습니다.

  1. 비밀번호 해싱하기

    먼저, 사용자로부터 받은 비밀번호를 bcrypt를 사용하여 해싱합니다. 이 과정에서 bcrypt는 소금(salt)을 추가하여 해싱을 더욱 안전하게 만듭니다.

    const bcrypt = require('bcrypt');
    const saltRounds = 10;
    const myPlaintextPassword = 's0/\/\P4$$w0rD';
    
    bcrypt.hash(myPlaintextPassword, saltRounds, function(err, hash) {
      // 이제 hash 값을 데이터베이스에 저장할 수 있습니다.
    });
    
  2. 비밀번호 확인하기

    로그인 과정에서 사용자가 입력한 비밀번호가 저장된 해시와 일치하는지 확인해야 합니다. bcrypt는 이를 위한 함수도 제공합니다.

    // 사용자가 로그인할 때 입력한 비밀번호
    const someOtherPlaintextPassword = 'not_bacon';
    
    // 데이터베이스에서 가져온 비밀번호 해시
    const hashFromDatabase = '해시값';
    
    bcrypt.compare(someOtherPlaintextPassword, hashFromDatabase, function(err, result) {
      // result == true면 비밀번호가 일치합니다.
    });
    

왜 bcrypt를 사용해야 할까요?

bcrypt는 다음과 같은 이유로 많이 사용됩니다:

비밀번호는 사용자의 개인 정보를 보호하는 첫 번째 방어선입니다. 따라서, bcrypt와 같은 강력한 도구를 사용하여 이를 안전하게 보관하는 것이 중요합니다. 이 글이 여러분이 웹 개발 과정에서 비밀번호를 더 안전하게 다루는 데 도움이 되길 바랍니다.