広告が嫌いですか? 行く 広告なし 今日

暗号ノンセ生成器

開発者

使用例

ナンスとは?

ガイド

暗号ノンセ生成器

CSPヘッダー、OAuthステートパラメーター、CSRFトークン、セッションIDなどに使用する暗号論的に安全なナンス(一度だけ使用される数値)を生成します。真のランダム性のためにcrypto.getRandomValues()を使用 — Math.random()のフォールバックはありません。16進数、Base64、Base64url、または10進数配列形式で出力します。すべてブラウザ内で実行され、サーバーには何も送信されません。

使用方法

バイト長(8、16、24、32、または64バイト、またはカスタム長を入力)、出力形式(16進数、Base64、Base64url、または10進数配列)、生成するナンスの数を設定します。設定を変更すると値が自動的に生成されます。個々のナンスをコピーするか、CSPヘッダー、HTMLスクリプトタグ、OAuthステートパラメーター、CSRFトークン、およびセッションCookie用に自動的に入力される事前フォーマットされた使用例を使用します。

機能

  • 暗号化されたランダム性 — crypto.getRandomValues()のみを使用。Math.random()のフォールバックはありません。OSのエンターピーソースから暗号論的に安全なランダムバイトを生成します。
  • 複数出力形式 — 16進数(小文字)、Base64(標準)、Base64url(URLセーフ、パディングなし)、および10進数バイト配列。各形式は異なるユースケースに適しています。
  • 設定可能なバイト長 — 事前定義された長さ(8、16、24、32、64バイト)またはカスタム。エントロピー表示はランダム性のビット数(バイト × 8)を示します。
  • 大量生成 — 一度に最大100個のナンスを生成し、それぞれに個別のコピーボタンがあります。
  • 使用例 — ナンスで自動入力された事前フォーマットされたコードスニペット:CSPヘッダー、HTMLスクリプトナンス属性、OAuthステートパラメーター、CSRF隠し入力、およびセッションCookie。
  • エントロピー表示 — 設定されたバイト長のビットエントロピーを表示するため、ナンスがセキュリティ要件を満たしていることを確認できます。
  • 100% クライアントサイド — ブラウザから何も送信されません。サーバーリクエストなし、ログなし。ナンスはプライベートなままです。

ナンスとは?

ナンス(「一度だけ使用される数値」)とは、一度だけ使用されるべきランダムな値のことです。暗号技術とウェブセキュリティにおいて、ナンスはリプレイ攻撃、クロスサイトスクリプティング(XSS)、およびリクエストフォージェリを防ぎます。重要な要件は予測不可能性です — 攻撃者がナンス値を推測できないようにする必要があるため、暗号論的なランダム性(疑似ランダムではない)が不可欠です。

ナンスとランダムトークンの違いは何ですか?

ナンスは具体的には「一度だけ使用される数値」です — 各使用ごとに一意である必要があり、決して再利用されるべきではありません。ランダムトークンは、認証または識別に使用される任意のランダム値に対するより広範な用語です。実際には、暗号論的なナンスは、追加の制約として一度だけ使用されるランダムトークンです。CSPナンスは、すべてのページロード時に再生成する必要があります。OAuthステートパラメーターは、各承認リクエストごとに一意である必要があります。CSRFトークンは、セッションごとまたはリクエストごとに一意であるべきです。生成方法は同じ(暗号論的なランダム性)ですが、使用パターンが異なります。

ナンスにMath.random()を使用しないのはなぜですか?

Math.random()は、暗号論的に安全ではない疑似乱数ジェネレーター(PRNG)を使用しています。その出力は決定的です — 攻撃者が内部状態を知っていれば、将来の値を予測できます。最新のブラウザは、xorshift128+または同様のアルゴリズムをMath.random()に使用していますが、これらは高速ですが予測可能です。crypto.getRandomValues()は、オペレーティングシステムの暗号論的乱数ジェネレーター(CSPRNG)を使用しており、ハードウェアイベントからエントロピーを引き出すため、攻撃者がアルゴリズムを知っていても予測不可能な出力を生成します。セキュリティが重要な値については、常にcrypto.getRandomValues()を使用してください。

ナンスはいくつのバイトであるべきですか?

ユースケースによります。CSPナンスの場合、16バイト(128ビット)が推奨される最小値です — 推測による総当たり攻撃を防ぐのに十分です。OAuthステートパラメーターの場合、16〜32バイトが標準です。CSRFトークンの場合、最小16バイトです。セッションIDの場合、32バイト(256ビット)は非常に快適なセキュリティマージンを提供します。一般的なルール:128ビット(16バイト)のエントロピーは、現在の技術では総当たり攻撃が計算上不可能であると考えられています。256ビットは、理論上の量子コンピューティング攻撃に対するセキュリティを提供します。

Base64urlとは何ですか?いつ使用すべきですか?

Base64urlはBase64エンコーディングのURLセーフなバリアントです。標準のBase64は、URLで特別な意味を持つ+と/文字を使用しており、クエリパラメーター、Cookie、およびファイル名で問題を引き起こす可能性があります。Base64urlは、+を–に、/を_に置き換え、=パディングを省略します。OAuthステートパラメーター、URLクエリ値、JWTトークン、Cookie値、およびナンスがURLまたはHTTPヘッダーに表示されるコンテキストにはBase64urlを使用してください。CSPナンス(仕様では標準Base64が期待されます)やURLの安全性に懸念がないコンテキストには、標準Base64を使用してください。

広告なしで楽しみたいですか? 今すぐ広告なしで

拡張機能をインストールする

お気に入りのブラウザにIOツールを追加して、すぐにアクセスし、検索を高速化します。

に追加 Chrome拡張機能 に追加 エッジ拡張 に追加 Firefox 拡張機能 に追加 Opera 拡張機能

スコアボードが到着しました!

スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!

ニュースコーナー 技術ハイライト付き

参加する

価値ある無料ツールの提供を継続するためにご協力ください

コーヒーを買って