bcryptによるパスワード暗号化
前の記事ではsign-oup関数によりdb接続を簡単に実現した.
しかし,問題はパスワードが単純なテキストとして格納されていることであり,bcryptを用いてこの部分を復号することができる.
簡単です.まだないなら敷いてください.
pip install bcrypt
持ってきて使うとき.
import bcrypt
既存の実装sign-oupを取得し、bcryptを使用してpasswordをハッシュして保存します.
パスワードのステータス
確かに安全です.
+追加
bcryptが行った仕事は以下の通りです.
+salting:食べ物に塩を加えるように、ランダムなデータを加えてハッシュします.どのようにデータを抽出しても、どこからどこまでが既存のデータなのか分かりません.ハッシュデータを挿入した一連のrainbow攻撃を効果的に行った.
+key streching
従来の一方向ハッシュアルゴリズムの実行速度が速すぎるという弱点を補うためには,N回のハッシュを繰り返すことが重要な伸張である.もちろん,アルゴリズムは最初は動作速度が速いので,認証失敗を適切に制限することが望ましい.
公式化すると.
salt data + password
N times hashing
Hash result(+アクセス制限=個別実施)
しかし,問題はパスワードが単純なテキストとして格納されていることであり,bcryptを用いてこの部分を復号することができる.
簡単です.まだないなら敷いてください.
pip install bcrypt
持ってきて使うとき.
import bcrypt
既存の実装sign-oupを取得し、bcryptを使用してpasswordをハッシュして保存します.
@app.route('/sign-up', methods=['POST'])
def sign_up():
new_user = request.json
new_user['password'] = bcrypt.hashpw(
new_user['password'].encode('utf-8'), bcrypt.gensalt()
)
new_user_id = insert_user(new_user)
check_user = str(new_user_id)
if check_user is None :
return 'fail', 400
return check_user, 200
変更されたコードを使用してコストを入力パスワードのステータス
確かに安全です.
+追加
bcryptが行った仕事は以下の通りです.
+salting:食べ物に塩を加えるように、ランダムなデータを加えてハッシュします.どのようにデータを抽出しても、どこからどこまでが既存のデータなのか分かりません.ハッシュデータを挿入した一連のrainbow攻撃を効果的に行った.
+key streching
従来の一方向ハッシュアルゴリズムの実行速度が速すぎるという弱点を補うためには,N回のハッシュを繰り返すことが重要な伸張である.もちろん,アルゴリズムは最初は動作速度が速いので,認証失敗を適切に制限することが望ましい.
公式化すると.
salt data + password
N times hashing
Hash result(+アクセス制限=個別実施)
Reference
この問題について(bcryptによるパスワード暗号化), 我々は、より多くの情報をここで見つけました https://velog.io/@yuk_jongwha/bcrypt를-활용한-패스워드-암호화テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol