bcrypt를 이용해서 비밀번호 암호화를 진행하였다.
bcrypt는 단방향으로 암호화를 해준다. 그래서 비밀번호를 암호화할 때 많이들 사용한다.
아래처럼만 사용한다면 간단하게 사용 가능하다.
1. 설치
pip install bcrypt
2. 암호화
import bcrypt
password = "example_password"
hashed = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt()).decode('utf-8')
이렇게 해주면 이런 결과 물을 얻을 수 있다.
이 값을 디비에 저장하면 된다.
$2b$12$i1ATzTqRRywL4naUA2MO8uuidWaJhzHbzNbIZqF10wnD7jVga6yZC
3. 비밀번호체크
import bcrypt
db_pass = getDbPassword() #디비에서 비밀번호 불러옴
db_pass.encode('utf-8')
password = '123435' #비교대상
isOk = bcrypt.checkpw(password.encode('utf-8'),db_pass)
print(f"Password match: {isOk}")
4. 유의사항
함수 안에 파라미터로 데이터를 넣을 때는 encode 해서 b' ' 형태의 byte값으로 전달을 하고 디비에 저장할 때는 decode 하여 b' '가 없는 상태로 저장을 해야 한다. 여기서 꼬여서 시간을 한참을 허비했다.