개발로 자기계발
article thumbnail
728x90
bcrypt 알고리즘을 사용해서 비밀번호를 암호화시켜 저장해 보자 

 

1. bcrypt 설치

=> 일반적으로 규정을 준수해야할 상황이 아니라면 구현이 쉽고 비교적 강력하다.

터미널에  pip install "passlib[bcrypt]" 다운

 

2. 라이브러리 import

from passlib.context import CryptContext

bcrypt_context = CryptContext(schemes=['bcrypt'], deprecated="auto")

 

3. 함수 생성 및 POST API 수정

def get_password_hash(password):
    return bcrypt_context.hash(password)
    
    
    
@app.post("/create/user")
async def create_new_user(create_user: CreateUser):
    create_user_model = models.Users()
    create_user_model.email = create_user.email
    create_user_model.username = create_user.username
    create_user_model.first_name = create_user.first_name
    create_user_model.last_name = create_user.last_name

    hash_password = get_password_hash(create_user.password)

    create_user_model.hashed_password = hash_password
    create_user_model.is_active = True

 

4. Swagger 확인

유저 데이터를 생성하면 패스워드가 암호화 된 것을 확인할 수 있다.

 

5. 암호화 사용 참고

  • ISO-27001 보안 규정을 준수해야하는 상황이면 PBKDF2
  • 보안 시스템을 구현하는데 많은 비용을 투자할 수 있다면, Scrpyt
728x90
SMALL
profile

개발로 자기계발

@김잠봉

틀린부분이나 조언이 있다면 언제든 환영입니다:-)