WALUDO ツール
CRYPTO.03 BCRYPT GENERATOR

Bcrypt ジェネレーター

生成と検証で同じパスワードを使い、右側の Hash Inspector が結果を説明します。コスト、時間、72 バイト境界も操作の近くに表示します。

PASSWORD

パスワードとコスト

一般的な互換基準。本番環境で測定してください

パスワードを入力して生成するか、右側にハッシュを貼り付けて検証

bcrypt.js によるローカル非同期計算 · パスワードとハッシュは送信・保存されません

§ 01

同じパスワードを生成・検証する

1
1

パスワードとバイト数を確認

Bcrypt の従来の上限は 72 UTF-8 バイトです。CJK 文字や絵文字は複数バイトを使うため、警告を確認してください。

2
2

コストを選ぶ

コストを 1 増やすと計算量はおよそ倍になります。12 は一般的な出発点ですが、本番値は実サーバーで測定してください。

3
3

生成または検証

生成結果は検証欄に自動入力されます。検証では完全なハッシュから salt とコストを読み取ります。

§ 02

Bcrypt は推測攻撃を意図的に遅くします

Bcrypt はパスワードハッシュであり、可逆暗号ではありません。結果にはバージョン、コスト、ランダムな salt、ハッシュ本体が含まれます。

通常のログインは一度だけ計算しますが、攻撃者は推測ごとに高コスト計算を繰り返します。ハードウェアの変化に合わせて見直してください。

§ 03

コスト係数の規模と用途

コスト
およそのラウンド
推奨
4–9
16–512
ローカルテストとデモ
10–11
1024–2048
旧システムや低性能環境
12
4096
一般的な基準。実機で測定
13–14
8192–16384
高コスト。ログイン遅延を評価
15
32768
ブラウザーでは大幅に遅い場合あり
§ 04

72 バイト制限とバージョン接頭辞に注意

従来の Bcrypt はパスワードの最初の 72 バイトだけを使います。ASCII 72 文字は 72 バイトですが、CJK は通常 3 バイト、多くの絵文字は 4 バイトです。

一般的な接頭辞は 2a、2b、2y です。現代の結果は通常 2b を使い、2y は PHP 系で見られます。言語間移行では実データで検証してください。

§ 05

複数言語での Bcrypt 生成と検証

import bcrypt from 'bcryptjs';
const hash = await bcrypt.hash(password, 12);
const valid = await bcrypt.compare(password, hash);
§ 06

よくある質問

Q1Bcrypt を復号できますか?

できません。ハッシュ内の salt とコストで入力を再計算して検証します。忘れたパスワードはリセットしてください。

Q2本番環境では必ずコスト 12 でよいですか?

いいえ。一般的な出発点ですが、実機でベンチマークし、同時ログイン、制限、体験を考慮して選びます。

Q3同じパスワードで毎回ハッシュが違うのはなぜですか?

生成ごとに新しいランダム salt を使うためです。これによりレインボーテーブル攻撃を防ぎます。

Q4パスワードは送信・保存されますか?

されません。bcrypt.js が現在のページで非同期計算し、入力を送信したりブラウザー保存領域へ書き込んだりしません。

Q5新規プロジェクトでは Bcrypt と Argon2id のどちらがよいですか?

どちらも利用できます。新規システムでは Argon2id を先に評価することが多く、Bcrypt は互換性のため広く使われています。

✳ WALUDO TOOLBOX ✳ ブラウザー標準ツール · NO SERVER · NO DATA COLLECTION

ファイルがパソコンから外へ出ることはありません · FILES STAY LOCAL · PRIVACY FIRST