Node.js에서 bcryptjs를 이용한 비밀번호 해싱하는 방법

Node.js에서 bcryptjs를 이용한 비밀번호 해싱하는 방법

비밀번호 보안은 모든 웹 애플리케이션의 중요한 부분입니다. Node.js에서 bcryptjs 라이브러리를 사용하면 비밀번호를 안전하게 해싱하여 저장할 수 있습니다. 이 글에서는 bcryptjs를 설치하고 사용하는 방법을 단계별로 알아보겠습니다.

bcryptjs 소개

bcryptjs는 비밀번호를 해싱하기 위한 자바스크립트 라이브러리입니다. 이 라이브러리는 자동으로 솔트를 생성하고, 솔트와 함께 비밀번호를 해싱하여 보안을 강화합니다. bcryptjs는 원본 비밀번호를 복구할 수 없는 방식으로 정보를 저장하므로, 데이터베이스가 해킹당하더라도 비밀번호가 노출될 위험이 줄어듭니다.

bcryptjs 설치

Node.js 프로젝트에서 bcryptjs를 사용하기 위해, npm을 통해 라이브러리를 설치해야 합니다. 터미널에서 다음 명령어를 실행합니다.

npm install bcryptjs

비밀번호 해싱 예제

다음은 bcryptjs를 사용하여 비밀번호를 해싱하는 간단한 예제입니다. 사용자의 비밀번호를 받아 해싱한 후, 데이터베이스에 저장하는 과정입니다.

const bcrypt = require('bcryptjs');

// 비밀번호를 해싱하는 비동기 함수
async function hashPassword(password) {
  try {
    const saltRounds = 10;  // 솔트 라운드 수를 설정합니다.
    const hashedPassword = await bcrypt.hash(password, saltRounds);  // 비밀번호를 해싱합니다.
    console.log('Hashed password:', hashedPassword);  // 콘솔에 해시된 비밀번호를 출력합니다.
    return hashedPassword;  // 해시된 비밀번호를 반환합니다.
  } catch (error) {
    console.error('Hashing failed:', error);  // 해싱 실패 시 오류 메시지를 출력합니다.
  }
}

// 사용 예제
hashPassword('yourPassword123');  // 함수를 호출하여 'yourPassword123' 비밀번호를 해싱합니다.

이 코드는 bcryptjs 모듈을 사용하여 주어진 비밀번호를 안전하게 해싱하는 예제입니다. saltRounds는 솔트 생성에 사용되는 반복 횟수를 나타내며, 보안 강도를 설정합니다. bcrypt.hash 함수는 비밀번호와 솔트 라운드를 입력으로 받아 해시된 비밀번호를 생성합니다.

 bcryptjs를 이용한 비밀번호 해싱 예제 실행 결과 화면

참고 사이트

안전한 비밀번호 관리는 웹 보안의 핵심 요소 중 하나입니다. bcryptjs를 사용하여 강력하고 안전한 비밀번호 저장 방식을 구현하면, 사용자 데이터 보호에 크게 기여할 수 있습니다.

관련 이전 게시글

이 글이 도움이 되셨다면 공유 부탁 드립니다.

위로 스크롤