[Django/Python] Bcrypt & JWT
Bcrypt
個人情報を暗号化するためのライブラリ.
bcryptは「str」データではなく「Bytes」データを暗号化する.
したがって、データを「Bytes」に変換する必要があります.
Pythonでは、strを「Bytes」と符号化します.
「Bytes」は復号化されて「str」となる.
encodeとdecodeでは「UTF-8」Unicode文字仕様を使用して、私たちが認識できる形式に変換します.
bcrypt.checkpw(パスワード(バイトタイプ)、暗号化パスワード(バイトタイプ)を使用します.
True、Falseの値を返します.
JSON Web Token. 認証の手段.
my_settings.pyなどのファイルに値を格納して使用する必要があります.
{「user id」:=3}ここでも個人情報以外のデータを使用する必要があります.
認証用のトークンが発行されている場合は、フロントエンドエンジニアに転送されます.
(ログイン成功など)
認証されたユーザーのみがアクセスできます.トークンを取得し、発行されたトークンと一致していることを確認する必要があります.
個人情報を暗号化するためのライブラリ.
bcryptは「str」データではなく「Bytes」データを暗号化する.
したがって、データを「Bytes」に変換する必要があります.
Pythonでは、strを「Bytes」と符号化します.
「Bytes」は復号化されて「str」となる.
encodeとdecodeでは「UTF-8」Unicode文字仕様を使用して、私たちが認識できる形式に変換します.
#Bcrypt 설치
pip install bcrypt
#import
import bcrypt
password = '1234' #'str'타입
#password를 인코드 해준다.
#보안을 위해 gensalt()함수 사용
hashed_password = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt())
#'Bytes'타입으로 출력된다.
print(hashed_password)
-> b'$2b$12$YFs9rh.1LgJwZuf9ibyjpuLvBoCaGX0MzedFWF2Jo0zU3lMZurZ4a'
type(hashed_password)
-> <class 'bytes'>
パスワードが暗号化パスワードと一致することを確認すると、bcrypt.checkpw(パスワード(バイトタイプ)、暗号化パスワード(バイトタイプ)を使用します.
True、Falseの値を返します.
new_password = '1234'
#new_password 인코드
bcrypt.checkpw(new_password.encode('utf-8', hashed_password)
-> True
JWTJSON Web Token. 認証の手段.
#설치
pip install pyjwt
#import
import jwt
access_token = jwt.encode({'user_id': 3}, 'secret', algorithm='HS256')
print(access_token)
-> 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MX0.-xXA0iKB4mVNvWLYFtt2xNiYkFpObF54J9lj2RwduAI'
「secret」セクションとアルゴリズムは露出できません.my_settings.pyなどのファイルに値を格納して使用する必要があります.
{「user id」:=3}ここでも個人情報以外のデータを使用する必要があります.
認証用のトークンが発行されている場合は、フロントエンドエンジニアに転送されます.
(ログイン成功など)
認証されたユーザーのみがアクセスできます.トークンを取得し、発行されたトークンと一致していることを確認する必要があります.
header = jwt.decode(access_token, 'secret', algorithms='HS256')
print(header)
-> {'user_id' : 3}
Reference
この問題について([Django/Python] Bcrypt & JWT), 我々は、より多くの情報をここで見つけました https://velog.io/@ulr0xb/DjangoPython-Bcrypt-JWTテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol