[CS]暗号化
暗号化とは?
認証の前に、プライバシー保護は欠かせません.
暗号化の具体的な手順は次のとおりです.
bcryptでサポートされている暗号化は、バイトフォーマットのデータです.
したがって、通常、入力したstringフォーマットのデータをバイトフォーマットに変換する必要がある.
これをstring->byte形式に変換し、符号化と呼ぶ.
逆に復号と呼ばれbyte-stringフォーマットです.
password = '1234'
hashed_password = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt())
print(hashed_password)
b'$2b$12$YFs9rh.1LgJwZuf9ibyjpuLvBoCaGX0MzedFWF2Jo0zU3lMZurZ4a'
同様に、例では、識別可能なUnicode文字仕様UTF−8が符号化/復号時に使用される.type(hashed_password)
<class 'bytes'>
暗号化された文字(byte形式)を取得できます.この暗号化方式は一方向暗号化であり,復号できない.
bcrypt.checkpw(入力された文字、暗号化された文字)/byte
だから文字を確認する方法でbcryptcheckpw()メソッドを用いて,基本形状を以下に示す.
ワンウェイ機能とは?
一度暗号化すると復号できません.簡単に言えば、ジャガイモを煮てジャガイモの泥を作りたいのは簡単です.マッシュポテトを作ると、つぶしたものと考えられ、丸いジャガイモの形に還元できません.また,暗号化の結果を要約と呼ぶ.
Bcrypt(SHA-256暗号化アルゴリズム)
Salting, Key Stretching
一方向ハッシュ関数の欠点はRainbowテーブル(ハッシュ値を計算する個別テーブル)に攻撃されやすいことである.それだけでなく,ハッシュ関数の特性は検索性能を向上させるために設計されているため,ハッカー攻撃時に迅速に照合できるため,セキュリティ上の危険性がある.
TIL bcrypt+pyjwt練習
Reference
この問題について([CS]暗号化), 我々は、より多くの情報をここで見つけました https://velog.io/@finelinefe/CS-암호화テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol