3. bcrypt를 이용한 암호화

Eden·2023년 7월 30일
0
  1. 데이터 암호화하여 저장하기
    비밀번호와 같은 민감한 데이터는 암호화하여 저장해야한다.
    암호화에는 여러가지 패키지가 있지만 그중 bcrypt를 이용한다.
npm install --save bcrypt @types/bcrypt

bcrypt는 자바스크립트 패키지로 다음과 같이 import 시켜주어야한다

import * as bcrypt from 'bcrypt';

bcrypt를 이용하여 User의 password를 암호화

user.entity.ts에 다음과 같이 추가

+
@BeforeUpdate() //User entity 데이터가 수정될떄
@BeforeInsert()	//데이터가 삽입될때
async hashedPassword():Promise<void> {
  const saltval = await bcrypt.genSalt(10);//솔트는 해싱된 비밀번호에 추가되는 무작위 문자열로서,
//같은 비밀번호라도 각기 다른 솔트를 사용하여 암호화를 수행하여 보안성을 높임 갚이 높을수록 오래걸리고 보안성이 높아짐
  this.password = await bcrypt.hash(this.password, saltval); 패스워드 암호화
}


async checkPassword(prepassword: string): Promise<boolean>{ //비밀번호 확인
  return await bcrypt.compare(prepassword, this.password);
 

위 함수를 필요한 api에 적용하여 암호화한다.

profile
주섬주섬..

0개의 댓글