• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
  • Skip to footer

AI活用エンジニアへの道

生成AI時代のエンジニアの生き方を考えるメディア(作成途中)

  • コラム
  • 生成AI
  • プログラミング
    • Python入門
    • Flask入門
    • Django入門
  • プロフィール
Home / プログラミング / Django / Djangoにbcrypt, argon2の導入し、暗号化設定をしてセキュリティ品質強化しよう

Djangoにbcrypt, argon2の導入し、暗号化設定をしてセキュリティ品質強化しよう

1 bcrypt,argon2のインストール
2 Djangoの暗号化アルゴリズムの設定
3 関連記事

データベースにパスワードを保存するとき、暗号化が必要である。Djangoでは、デフォルトで様々な暗号化アルゴリズムが用意されているが、追加でより強力な暗号化アルゴリズムを用いることもできる。

最も強力な暗号化アルゴリズムとして、bcript,argon2がある。

今回はそのアルゴリズムの概要とインストール、導入方法について紹介する。


bcrypt,argon2のインストール

  • こちらの記事に詳細に記述されているが、bcryptは、「ハッシュ化」「saltの付加」「ストレッチング」という機能を持った最も強力な暗号化アルゴリズムの一つである。以下のコマンドでインストールできる。

  • pip install bcrypt # bcryptのインストール

  • argon2は2015年のPassword Hashing CompetitionのWinnerとなったパスワードハッシュアルゴリズムであり、詳細については、こちらに記述されている。

  • pip install django[argon2] # argon2のインストール

インストールしたら、次にこれをDjangoのアプリケーションに適用するようにsettings.pyを設定する。


Djangoの暗号化アルゴリズムの設定

settings.pyの設定を行う。

  • settings.pyには、まずINSTALLED_APPSにdjango.contrib.admin, django.contrib.auth, django.contrib.contenttypeの3つの設定が入っていることを確認する(デフォルトで入っているが、もし何らかの作業で消してしまったのなら、追加で入れるようにする)
  • 次に、settings.pyにPASSWORD_HASHERSの設定を追加する。詳細はこちらのサイトに記載されているが、settings.pyのAUTH_PASSWORD_VALIDATORSの上に、PASSWORD_HASHERSとして、配列を追加する。
  • settings.py
# 使用する暗号化アルゴリズムの設定
# 上から順に、ライブラリが存在するものが利用される。下の例では、Argon2が存在すればArgon2が使われなければBcryptSHA256が利用される
PASSWORD_HASHERS = [
    'django.contrib.auth.hashers.Argon2PasswordHasher',
    'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
    'django.contrib.auth.hashers.BCryptPasswordHasher',
    'django.contrib.auth.hashers.PBKDF2PasswordHasher',
    'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
]

settings.pyを設定した後に、パスワードを登録する
管理画面から確認すると、パスワードがArgon2で暗号化されていることが記載されていることがわかる。

  • 管理画面

以上、DjangoでArgon2やBcryptなどの強力なアルゴリズムを用いて暗号化する方法について記載しました。

関連記事

Pythonの型ヒント:コレクション型とOptional型の使い方
Pythonの型ヒント:コレクション型とOptional型の…
Python型ヒントについて、変数と関数の引数と戻り値に付与する基本的な書き方について
Python型ヒントについて、変数と関数の引数と戻り値に付与…
【まとめ】よく使うLinuxのショートカット11選
【まとめ】よく使うLinuxのショートカット11選
覚えておくべきLinuxコマンド50選
覚えておくべきLinuxコマンド50選
FlaskでFormを用いてPOSTリクエストを行い、送信された値を取得する
FlaskでFormを用いてPOSTリクエストを行い、送信さ…
Flaskでabortを用いてHTTPException例外を強制的に発生させる
Flaskでabortを用いてHTTPException例外…

Primary Sidebar

人気記事

  • 1
    ITエンジニアとしてスキルを高めるためのUdemy講…
  • 2
    PyCharm,IntelliJのおすすめプラグイン一覧
  • no image 3
    Python未経験だが、フリーランスの案件に採用さ…
  • 4
    アメリカのシリコンバレーでプログラミングを無…

特集記事

  • 1
    Cursorの使用のポイントとコツ(コード補完、イ…
  • 2
    ITエンジニアとしてスキルを高めるためのUdemy講…

目次

1 bcrypt,argon2のインストール
2 Djangoの暗号化アルゴリズムの設定
3 関連記事
StartCode ロゴ
AI時代のエンジニアを最速で育てる
法人向けIT研修で即戦力を育成しています。詳しくはお問い合わせください。
▶ 詳細はこちら
Django講座
【Udemy】Django入門講座(0からDjangoを学習: Python講座つき)
受講生6500人ほどの人気講座。<strong>View, Template, Model, Cla...
詳細 ▶

Footer

利用規約