メインコンテンツへスキップ
Toolsbase Logo

JSON正規化(RFC 8785)

JSON入力をRFC 8785(JCS: JSON Canonicalization Scheme)に基づいて正規化し、SHA-256/SHA-384/SHA-512ハッシュを同時生成できるオンラインツールです。オブジェクトキーをUTF-16コードユニット順でソートし、空白を除去して数値を正規化することで、同じJSONデータから常に同一のバイト列を生成します。デジタル署名の作成・検証、APIレスポンスの整合性確認、キャッシュキーの生成など、一貫したJSON比較が必要な場面で活躍します。

最終更新:

使い方

使い方を開く
  1. 1

    JSONを入力

    テキストエリアに正規化したいJSONデータを入力またはペーストします。

  2. 2

    正規化結果を確認

    RFC 8785に基づいて正規化されたJSONと、SHA-256/SHA-384/SHA-512ハッシュが自動的に表示されます。

  3. 3

    結果をコピー

    正規化結果やハッシュ値の「コピー」ボタンをクリックして、クリップボードにコピーできます。

JSON入力

JSONを入力してください

JSON正規化ツールとは

JSON正規化ツールは、JSON Canonicalization Scheme(JCS、RFC 8785)に基づいてJSONデータを決定的に正規化するオンラインツールです。オブジェクトキーのソート、空白の除去、数値の正規化を行い、同じデータから常に同じバイト列を生成します。正規化結果のSHA-256/SHA-384/SHA-512ハッシュも同時に計算されます。JSONはオブジェクトキーの順序や空白の有無によって同一データでも異なるバイト列になることがありますが、JCSによる正規化を行うことで、デジタル署名・HMAC検証・キャッシュキー生成などで一貫した結果を得ることができます。Web Crypto APIを使用してブラウザ内のみで処理されます。

主な機能

  • RFC 8785(JCS)準拠のJSON正規化
  • オブジェクトキーのUTF-16コードユニット順ソート
  • SHA-256/SHA-384/SHA-512ハッシュの同時生成
  • JSON構文エラーの行番号付き表示
  • 正規化結果とハッシュ値の個別コピー機能

こんな場面で役立ちます

  • JSONデータのデジタル署名を作成・検証するとき
  • 異なるシステム間でJSON比較の一貫性を確保したいとき
  • JSONの整合性ハッシュを計算してキャッシュキーにするとき
  • APIレスポンスの正規化を検証したいとき
  • JSONオブジェクトのキー順序に依存しない比較をしたいとき

よくある質問

RFC 8785(JCS)とは何ですか?

RFC 8785は、JSON Canonicalization Scheme(JCS)と呼ばれる、JSONデータの正規化形式を定義する標準規格です。同じデータから常に同一のバイト列を生成するルールを規定しており、デジタル署名やハッシュ比較に使用されます。

通常のJSON.stringify()との違いは何ですか?

JSON.stringify()はオブジェクトキーの順序が挿入順に依存し、空白やフォーマットも引数で変わります。RFC 8785ではキーをUTF-16コードユニット順でソートし、空白を除去し、数値表現を正規化することで、常に同一の出力を保証します。

なぜSHA-256/SHA-384/SHA-512のみ対応ですか?

正規化JSONのハッシュは改ざん検知やデジタル署名に使用されるため、セキュリティ上安全なSHA-2ファミリーのみをサポートしています。MD5やSHA-1は衝突攻撃に脆弱であり、このユースケースには適しません。

入力データはサーバーに送信されますか?

いいえ、処理はブラウザ内のWeb Crypto APIで行われます。入力データが外部に送信されることはありません。

どのような用途で正規化が必要になりますか?

主な用途はJWS(JSON Web Signature)やJWT、JCS(JSON Canonicalization Scheme)を使ったAPIのデジタル署名です。また、JSONオブジェクトのキー順序が実装によって異なる場合でも、正規化によって常に同一のハッシュ値を得られるため、キャッシュ管理やデータ整合性チェックにも活用できます。