JSON正規化(RFC 8785)
JSON入力をRFC 8785(JCS: JSON Canonicalization Scheme)に基づいて正規化し、SHA-256/SHA-384/SHA-512ハッシュを同時生成できるオンラインツールです。オブジェクトキーをUTF-16コードユニット順でソートし、空白を除去して数値を正規化することで、同じJSONデータから常に同一のバイト列を生成します。デジタル署名の作成・検証、APIレスポンスの整合性確認、キャッシュキーの生成など、一貫したJSON比較が必要な場面で活躍します。
最終更新:
使い方
使い方を開く使い方を閉じる
- 1
JSONを入力
テキストエリアに正規化したいJSONデータを入力またはペーストします。
- 2
正規化結果を確認
RFC 8785に基づいて正規化されたJSONと、SHA-256/SHA-384/SHA-512ハッシュが自動的に表示されます。
- 3
結果をコピー
正規化結果やハッシュ値の「コピー」ボタンをクリックして、クリップボードにコピーできます。
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オブジェクトのキー順序が実装によって異なる場合でも、正規化によって常に同一のハッシュ値を得られるため、キャッシュ管理やデータ整合性チェックにも活用できます。
