최대 1 분 소요

bcrypt란

  • 1999년 개발된 암호화 해시 함수
  • rainbow table 공격 방지를 위해 salt 사용
  • 반복횟수를 늘려 연산속도를 늦출 수 있어 연산 능력이 증가하더라도 brute-forece 공격에 대비
  • 다양한 언어에서 사용 가능

사용방법

bcrypt 모듈 설치

npm i bcrypt

bcrypt 적용

    // 회원가입
    // bcrypt hash를 통해 비밀번호 암호화
    const bPassword = await bcrypt.hash(password, saltRounds);

    // 회원가입 비밀번호를 해시된 비밀번호로 전송
    const [data, created] = await users.findOrCreate({
      where: {
        password: bPassword,
      },
    })

    // 로그인
    // compareSync로 비밀번호 확인
    // password: 입력할 비밀번호
    // userInfo.dataValues.password: 암호화된 비밀번호
    bcrypt.compareSync(password, userInfo.dataValues.password)