bcryptによるパスワード暗号化


前の記事ではsign-oup関数によりdb接続を簡単に実現した.
しかし,問題はパスワードが単純なテキストとして格納されていることであり,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(+アクセス制限=個別実施)