このジェネレーターについて
このプリセットは、URLセーフな高エントロピー値をHMAC JWT署名用に作成します。これは開発者シークレットであり、ユーザーパスワードではなく、このブラウザから外部に出ることはありません。
このプリセットはurl-safeモードで開始し、一度に10個の独立した結果を生成します。表示されているすべての設定は調整可能で、生成された値はPwdGenに送信されません。
使用するタイミング
- この特定のユースケース向けの新しい認証情報を作成する
- 再利用または脆弱なパスワードを置き換える
- 安全な保存の前にローカルで値を生成する
アルファベットサイズ、エントロピー、ブルートフォースの前提
理論上のエントロピーの上限は H = L × log2(A) で計算されます。ここでLは生成された長さ、Aは現在許可されている文字数です。
| 長さ | アルファベット | 探索空間 | エントロピーの上限 | 100億回/秒の平均 |
|---|---|---|---|---|
| 64 | 64 | 6464 | 384.0 ビット | 6.24e97 years |
重要: これらは一様ランダムな値に対する数学的な推定値です。必須の位置、制限された数、繰り返しパスワード、辞書パターン、漏洩した認証情報、実際のパスワードハッシュコストによって結果は大幅に変わる可能性があります。この数値はセキュリティを保証するものではありません。
JWT署名シークレットのデプロイガイダンス
HS256には、少なくとも256ビットの一様ランダムな鍵素材を使用してください。HS384とHS512は異なるSHA-2出力サイズを使用しますが、より長いアルゴリズムを選択しても、弱い検証、漏洩した鍵、またはアルゴリズム混乱バグは修正されません。
同等のターミナルおよびNode.js生成
openssl rand -hex 32 import { randomBytes } from 'node:crypto';
const jwtSecret = randomBytes(32).toString('hex'); 保存とローテーション
- 署名鍵をGit、フロントエンドバンドル、URL、分析、アプリケーションログの外に保管してください。
- シークレットマネージャー、Vault、KMS、または保護された環境変数を使用してください。
- 鍵をローテーションする際は、制御されたkid戦略を使用してください。
- 検証者が公開鍵のみを保持すべき場合は、RS256またはES256を選択してください。
Hex、Base64、Base64URLはエンコーディングであり、暗号化ではありません。セキュリティはランダムバイトと署名鍵の保護方法に由来します。
結果を安全に使用する方法
- 宛先の現在のパスワードルールを確認する
- 一意の結果を使用し、利用可能な場合はMFAを有効にする
- リカバリーコードをパスワードとは別に保存する
生成とプライバシーの方法
このプリセットは、ランダム選択にブラウザのWeb Crypto APIを使用します。再生成、設定変更、選択、コピーを行っても、生成された認証情報がPwdGenに送信されることはありません。パスワードのクラック時間推定もローカルで実行され、推定値であり保証ではありません。
JWTシークレット生成 FAQ
HS256 JWTシークレットはどのくらいの長さが必要ですか?
HS256には、少なくとも256ビットの一様ランダムな鍵素材を使用してください。このページでは、64文字のBase64URLアルファベット値を生成し、一様に生成された場合に理論的な探索空間を大きくします。
JWTシークレットは環境変数に保存すべきですか?
環境変数はソースコードよりも安全ですが、プロセスインスペクション、ログ、またはデプロイメントツールを通じて漏洩する可能性があります。本番システムでは、管理されたシークレットストアまたはKMSが推奨されます。
RS256またはES256は、HMACの代わりにいつ使用すべきですか?
検証者が秘密署名鍵を所有すべきでない場合、または複数のサービスが公開鍵検証を必要とする場合に、非対称署名を使用してください。秘密鍵を保護し、制御された鍵識別子戦略で鍵をローテーションしてください。