OSS探訪

Pythonでパスワードハッシュを生成し、ソルト付きハッシュと照合する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
1,500
主要言語
Python
ライセンス
Apache-2.0
リポジトリ最終更新
2026/09/25
ページ内ナビ

概要

bcryptは、Pythonからbcrypt方式のパスワードハッシュを生成・検証するライブラリです。gensaltとhashpwでソルト付きハッシュを作成し、checkpwで入力パスワードを保存済みハッシュと照合できます。work factorの調整やbcrypt_pbkdf用のKDFも提供します。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

ランダムソルト付きハッシュを生成して照合する

bcrypt.gensalt()でソルトを生成し、hashpwでパスワードをハッシュ化します。認証時はcheckpwへ入力値と保存済みハッシュを渡して一致を確認できます。

出典:[2]

work factorを調整し、bcrypt_pbkdfも利用する

gensalt(rounds=...)で計算コストを調整でき、別用途向けにkdfでbcrypt_pbkdfも利用できます。

出典:[2]

向いている用途

既存bcryptハッシュとの互換性が必要なPython認証処理に向く

既存システムがbcrypt形式の保存済みハッシュを持つ場合や、Pythonから同形式の生成・照合を継続する必要がある認証処理に向きます。

出典:[2]

導入前の確認

新規設計ではArgon2idやscryptも比較する

公式READMEはbcryptを許容可能な選択肢としつつ、用途に応じてArgon2idやscryptも検討するよう案内しています。新規のパスワード保存方式では既存互換性だけで決めず、要件に応じて比較します。

出典:[2]

5.0.0では72 bytesを超えるパスワードがValueErrorになる

5.0.0では、72 bytesを超える入力を従来のように黙って切り捨てずValueErrorに変更しました。既存コードが長い入力を許容している場合はupgrade時に挙動を確認します。5.0.0のstable metadataはPython 3.8以上を対象にしています。

出典:[3][4]

参考にした公式資料

  1. [1]pyca/bcrypt repository(2026-09-30)
  2. [2]bcrypt 5.0.0 README(2026-09-30)
  3. [3]bcrypt 5.0.0 package metadata(2026-09-30)
  4. [4]bcrypt changelog(2026-09-30)
  5. [5]bcrypt Apache-2.0 license(2026-09-30)
編集部からの補足

既存のbcryptハッシュ資産と互換性を保ちたいPython projectでは扱いやすい一方、新規のパスワード保存方式では上流READMEがArgon2idやscryptも候補として挙げています。5.0.0への更新では72 bytes超入力の挙動変更を確認してください。

3ステップで試す

  1. 1

    bcrypt 5.0.0を追加

    stable版をversion固定でPython projectへ追加します。

    python -m pip install bcrypt==5.0.0
  2. 2

    パスワードをhash化

    ランダムsaltを生成して保存用hashを作成します。plaintext passwordは保存しません。

    import bcrypt password = b"super secret password" hashed = bcrypt.hashpw(password, bcrypt.gensalt())
  3. 3

    保存済みhashと照合

    認証時は入力passwordと保存済みhashをcheckpwで比較します。5.0.0では72 bytesを超えるpasswordはValueErrorになるため、入力条件も確認します。

    bcrypt.checkpw(password, hashed)
公式READMEで確認

成長

成長の推移 · 直近30日

1,500 Stars

推移データを蓄積中です。

Built with

カテゴリとタグ

カテゴリ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • python
Stars
1,500
Forks
216
Watchers
25
Open Issues
7
所有者種別
Organization
主要言語
Python
ライセンス
Apache-2.0
リポジトリ最終更新
2026/09/25

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?