bcryptハッシュを生成する方法
パスワードとコストラウンド数を入力すると、bcryptハッシュを生成できます。パスワードを省略した場合は空の値として処理され、ラウンド数を省略すると12が使われます。
bcryptハッシュ生成の基本
bcryptは、パスワードからハッシュを生成するための方式です。このツールでは、パスワードを入力し、コストラウンド数を指定してbcryptハッシュを作成できます。パスワードを省略した場合の動作も決まっているため、入力前に結果の条件を確認しておくと扱いやすくなります。
入力してハッシュを生成する手順
- パスワード欄に、ハッシュ化したい文字列を入力します。入力は省略できますが、その場合は空の文字列として扱われます。
- コストラウンド欄に値を入力します。省略時は12です。空でないパスワードを使う場合、入力値は整数に変換され、10から15までの範囲に収められてから生成されます。
- 生成を実行し、表示されたハッシュとソルトを確認します。空でないパスワードでは、パスワードがUTF-8として扱われ、新しいソルトからbcryptハッシュが作られます。
- 必要なら、元のパスワードを使ってbcryptの照合処理で生成結果を確認します。パスワードそのものではなく、利用目的に応じて生成されたハッシュを扱ってください。
結果の見方と注意点
同じパスワードと同じコストラウンド数を使っても、毎回同じハッシュになるとは限りません。生成のたびに新しいソルトが作られるためです。したがって、文字列の一致だけで結果を判断せず、元のパスワードを使ったbcrypt照合で確認します。
パスワードを空にした場合は例外的に計算が成功し、bcryptに関連付けられた空のハッシュ値とソルト値が返ります。空でないパスワードでラウンド数の変換やbcrypt生成に失敗すると、成功したハッシュではなく失敗として扱われます。
使用例
日本語を含むパスワードをbcryptでハッシュ化し、生成された値が元のパスワードで照合できるか確認します。
パスワード欄に「朝の記録2025」を入力し、コストラウンド欄に12を指定して生成します。表示されたハッシュを、元の文字列を使うbcrypt照合で確認します。
生成後にbcryptハッシュとソルトの値が表示されます。同じ入力を再び使っても、ソルトが新しく作られるためハッシュが異なる場合があります。
制限事項
- 確認されている機能はbcryptハッシュの生成です。パスワードの復元や強度評価、総当たり、復号を行う機能としては扱えません。
よくある間違い
- ラウンド数を整数に変換できない値にしたり、生成処理でTypeErrorまたはValueErrorが発生したりすると失敗になります。整数として解釈できる値を入力し、空でないパスワードでは10から15の範囲で指定して再実行してください。
よくある質問
パスワードを入力しなくても生成できますか?
はい。ただし、パスワードを空にした場合は、空のハッシュ値とソルト値が返る別の結果になります。
同じパスワードなら毎回同じハッシュになりますか?
同じになるとは限りません。新しいソルトが生成されるため、同じパスワードとラウンド数でも異なるハッシュになることがあります。
コストラウンド数を省略するとどうなりますか?
省略時は12です。空でないパスワードでは、入力された値が整数に変換され、10から15の範囲に収められてから生成されます。