サンプルを適用して一致を確認
サンプルの読み込みは置換プレビューを開きます。適用すると検証モードになり、架空の文字列と一致するbcryptレコードが入ります。一文字変更してもう一度検証すると、不一致も確認できます。
- 適用するまでは元の入力を保持し、適用後は一度だけ入力と結果をまとめて戻せます。
Hash & Crypto Helpers
テスト用の文字列で生成するか、検証モードで保存済みのレコードを確認してください。
テストデータのみを使用してください。入力はページとWorkerのメモリー内で処理し、送信やブラウザーストレージへの保存はしません。
テスト初期値はコスト10、範囲は4〜14。計算量は2^costで増加します。本番用の推奨設定ではありません。
ランダムは毎回16バイト。固定はbcryptが16バイト、その他が8〜64バイト。空白や0x接頭辞は使用しません。
bcryptとArgon2idは符号化文字列、scrypt/PBKDF2はHeyUtils JSONです。すべてのフレームワークに共通する形式ではありません。
テスト文字列を入力して操作を実行してください。
ライブラリを変更してからテスト用アカウントの認証に失敗する場合は、アルゴリズムだけでなく保存形式も確認します。パスワードハッシュ生成なら、候補文字列、ソルト、コストをそろえた再現用データを用意できます。
検証ではレコードに含まれる設定を読み取ります。生成側の選択を変更しても、保存済みハッシュの計算条件は上書きされません。先に既知のサンプルで一致を確かめると、文字列と設定のどちらを調べるべきか整理できます。
パスワードハッシュ生成のランダムモードは実行のたびに16バイトのソルトを作成します。同じ文字列でも結果が変わる様子を確認でき、固定モードでは同じソルトを使って別の実装と照合できます。
不一致は保存された条件で計算を終えた結果です。一方、読み取れない形式や上限を超えるコストは計算前にエラーになります。誤ったパスワードと、そもそも検証できないレコードを区別して扱います。
サンプルの読み込みは置換プレビューを開きます。適用すると検証モードになり、架空の文字列と一致するbcryptレコードが入ります。一文字変更してもう一度検証すると、不一致も確認できます。
生成モードでランダムと固定を切り替えます。固定ソルトは文字列そのものではなく16進数で表したバイト列です。bcryptは16バイト、それ以外は8〜64バイトを受け付けます。
Ctrl/Cmd + Enterで選択中の操作を実行します。入力や設定を編集すると処理が中止され、古い結果のコピーとダウンロードは無効になります。生成成功または検証一致後に保存できます。
bcrypt検証と生成、scrypt、Argon2id、PBKDF2-HMAC-SHA-256を利用できます。毎回一方式だけを実行するため、個別のテスト条件を確認できます。複数方式を同時実行する速度ランキングではありません。
bcryptにはコストファクター、Argon2idにはメモリー量・反復回数・並列度が含まれます。scryptとPBKDF2はバージョン付きのHeyUtils JSONにparameters、saltHex、hashHexを保存し、検証に必要な情報を残します。
入力したレコードのパラメーターにも上限を適用してから計算します。表示時間はこの端末での一回の測定で、初回はエンジンの読み込み時間を含む場合があります。サーバーの処理能力や本番環境の適正コストを表す数値ではありません。
ランダムモードではソルトが毎回変わるためです。ハッシュの中にソルトが含まれていれば、異なるレコードでも同じ候補文字列を検証できます。再現用の固定データが必要な場合は、文字列のバイト列、固定ソルト、アルゴリズム、コストをすべて同じにしてください。
ここではbcryptのコスト10をテストの初期値にしています。4〜14の範囲で挙動を確認できますが、本番での推奨値ではありません。利用先の実装、同時アクセス数、許容する認証時間を考慮し、実際の環境で測定して決める必要があります。
本番へのそのままの採用を保証するものではありません。固定のサンプルや低い計算コストは再現テスト向けです。実際の認証処理では利用ライブラリの形式と設定を確認し、ソルト生成や追加の秘密値などを含む運用全体で検証してください。
必ずしも一致しません。bcryptとArgon2idは記載した形式のみを読み取り、scryptとPBKDF2は本站独自のJSONレコードを使用します。Djangoなどの保存フィールドへそのまま貼る形式ではありません。利用先が事前ハッシュや別のBase64表現を使う場合は、その環境で確認します。
このページにはテスト用の値だけを入力してください。計算はブラウザーのWorker内で行い、入力を送信・保存しません。ただし、表示した文字列、クリップボード、ダウンロード、取り消し用の一時メモリーは操作に伴って残るため、実際のアカウントの秘密情報を使う必要はありません。
解決しませんでしたか?