코딩캠프/AI 웹개발 취업캠프

[AI 웹개발 취업캠프] 62Day - 프로젝트 13일차

고랑E 2023. 10. 18. 22:31
728x90

오늘은 패스워드 암호화를 할 것이다.

일반적으로 가장 많이 사용하고 있는 bcrypt 라는 라이브러리를 사용해 패드워드 암호화를 할껀데

 

선택한 이유는 아주 간단하다.

 

가장 자료가 많다.

구현이 쉽다.

비교적 강력하다.

 

pip install bcrypt

로 bcrypt 를 설치해준다.

 

기존 회원가입 코드에서

def create_user(db: Session, user: UserCreate):
    db_user = User(**user.dict())
    db.add(db_user)
    db.commit()
    db.refresh(db_user)
    return db_user

 

비밀번호 암호화를 위해

 

비밀번호를

str -> bytes 변경

bcrypt로 암호화

암호화 데이터 -> str로 변경

작업을 거쳐 db에 저장합니다.

def create_user(db: Session, user: UserCreate):
    hashed_password = bcrypt.hashpw(user.password.encode('utf-8'), bcrypt.gensalt()).decode('utf-8')
    db_user = User(
        email=user.email,
        password=hashed_password,
        nickname=user.nickname
    )
    db.add(db_user)
    db.commit()
    db.refresh(db_user)
    return db_user

 

 

 

본 후기는 정보통신산업진흥원(NIPA)에서 주관하는 <AI 서비스완성! AI+웹개발 취업캠프 - 프론트엔드&백엔드> 과정 학습/프로젝트/과제 기록으로 작성되었습니다.