Open oddsummer56 opened 1 month ago
DB에 비밀번호 넣을때 해시화
# 비밀번호 해시화 함수
def hash_password(password):
# bcrypt 해시 생성
hashed = bcrypt.hashpw(password.encode(), bcrypt.gensalt())
return hashed.decode('utf-8') # 문자열로 변환 후 반환
hashed_password = hash_password(user_passwd) # 입력받은 비밀번호를 해시화
params = {"passwd": hashed_password} # 해시화 된 비밀번호 INSERT
DB에서 비밀번호 읽어올 때 복호화
#비밀번호 검증 함수
def check_password(passwd, hashed):
return bcrypt.checkpw(passwd.encode(), hashed.encode())
어떠한 방식으로 비밀번호가 변경되더라도 (이메일 임시 비밀번호 발급 / 회원 정보 수정) DB에 INSERT될 때 해시화 하는 과정을 거쳐야 복호화 될 때 문제 없이 로그인이 되는 것을 확인함.
문제상황: 이메일로 임시 비밀번호를 발급 받아 로그인 후, 회원 정보 수정에서 비밀번호를 수정하려는 상황. 다음과 같이 해시화 하지 않고 수정하면 복호화 과정이 제대로 실행되지 않아 로그인 실패.
수정 전 코드
수정 후 코드