다운로드 후 임포트;
pip install bcrypt
pip install pyjwt
import bcrypt
import jwt
password = 'hihi1231'
type(password) #생성한 password는 str 타입력하세요
**password.encode('utf-8') #이렇게 하게되면 byte 타입으로 바뀐다
#**여기서 해쉬함수로 감싸서 암호화 시킬 때, 해쉬함수는 바이트 형태의 인자만 받기 때문이다**
encoded_password = password.encode('utf-8') #변수지정
type(encoded_password) #byte 타입으로 바뀐거 확인
**encoded_password.decode('utf-8') #다시 str 타입으로 돌아가는 것
**#byte형태로 감싸면 ex)"b'$2$4daewdsfs'"와 같이 바뀌는데 앞에 b도 하나의 str으로 인식하게 되면 데이터베이스에 저장될때나 프론트에 넘길때 문제가 생길 수 있기에 다시 디코딩해서 str형태로 바꿔야 한다.**
type(decoded_password) #str 타입으로 다시 바뀐거 확인
hashed_password = bcrypt.hashpw(encoded_password, bcrypt.gensalt()) #생성된 비번이 암호화되서 byte 타입으로 됨.
hashed_password
결과값: b'2b$12.0oiSJ8gyDNRrDHEEBjrbehSjIUU06a5PaEFURrWptHu.qBmYE0gK'
hashed_password.decode('utf-8') #암호화 된 것을 다시 str으로 변환
*사용자가 입력한 비밀번호와 비교할 때는;
print(bcrpyt.checkpw('1234'.encode('utf-8')),
#사용자가 입력한 비밀번호를 인코딩해서 바이트 타입 상태로
db_password.encode('utf-8')
#디비에 저장된 해쉬된 비밀번호 다시 인코딩해서 바이트 타입 상태로 비교
user_id = 2000
{'user_id' : user_id}
data = {'user_id' : user_id}
jwt.encode(data, 'sungjin_key', algorithm = 'HS256')
my_token = jwt.encode(data, 'sungjin_key', algorithm = 'HS256')
my_token
결과값: b'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoyMDAwfQ.OjqeFnhyIb4g02mOIq4y0mgs2VzC1_2ZSkEM566YZ6Q'
my_token.decode('utf-8') #다시 토큰을 str타입으로 바꿈입력하세요