bcrypt로 패스워드 암호화 및 확인

2405 단어 bcryptbcrypt

1. 암호화의 필요성

user와 관련된 db에 패스워드를 그대로 저장하게 되면 db가 해킹 당했을때 아주 치명적인 결과가 될 수 있다. 따라서 암호화를 진행하여야 한다.

2. bcrypt

bcrypt는 암호화를 아주 쉽게 도와주는 모듈이다. 워낙 간단하긴 하지만 회고를 목적으로 작성해보고자 한다.

2-1. hash값 생성

우선 bcrypt가 설치되있지 않다면
pip install bcrypt로 설치를 해주자.
그 후에 다음과 같이 해쉬값을 생성해 줄 수 있다.

import bcrypt
# form 에서 입력값을 받아온다.
pw = request.form.get("user_pw")

# 암호화를 진행한다.
# 암호화를 하면 byte타입의 해쉬값이 만들어 지는데
# 이를 decode하여 string 타입으로 db에 저장할 것이다.
hashed_pw = bcrypt.hashpw(pw.encode('utf-8'),bcrypt.gensalt())
hashed_pw=hashed_pw.decode('utf-8')

2-2. 패스워드 일치 확인

확인은 이런 식으로 간단하게 할 수 있다.

bcrypt.checkpw(pw.encode('utf-8'),user["User_pw"].encode('utf-8'))

좋은 웹페이지 즐겨찾기