IT/python

[파이썬]디비 암호화 by bcrypt

generator 2024. 8. 14. 15:52

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' '가 없는 상태로 저장을 해야 한다. 여기서 꼬여서 시간을 한참을 허비했다.