ツール説明
Base64 と 16 進数の相互変換ツールについて
Base64 to Hex は、エンコードされたペイロードを元のバイト列そのままの 16 進表示に変換します。Base64 文字の羅列から中身を推測する代わりに、バイナリを 1 バイトずつ読み解けます。
双方向の変換に対応し、data URI のプレフィックスや PEM のヘッダー行を取り除き、0x や区切り文字の有無を問わず 16 進入力を受け付けます。バイト数に加えて、先頭バイトが既知のシグネチャに一致した場合は検出したファイル形式も表示します。
Base64 to Hex の使い方
- エンコードされた値を入力欄に貼り付けます。data:image/png;base64, のプレフィックスや PEM ブロックの BEGIN / END 行は自動で除去され、空白文字は無視されます。
- 方向切り替えボタンで Base64 to Hex と Hex to Base64 を切り替えます。
- 16 進入力の場合は、ツールが出力した形のまま貼り付けて構いません。数字だけ、0x プレフィックス付き、スペースやコロン、ハイフンでバイトを区切った形式のいずれにも対応します。
- デバッガーやプロトコル仕様書の表記に合わせて、大文字出力やバイト間の区切りを有効にできます。
こんなときに使えます
- 証明書や鍵の生のバイト列を調べる。PEM の Base64 本体を 16 進に変換し、DER 構造を手作業でたどれます。
- ファイルや画像の先頭のマジックナンバーを確認し、拡張子を信用せずに実際の形式を確かめる。
- バイナリプロトコルのフレームやファームウェアのペイロード、16 進で文書化されているが Base64 で運ばれる暗号テストベクターをデバッグする。
- パケットキャプチャツールが出力した 16 進ダンプを Base64 に変換し、設定ファイルや API リクエストボディに貼り付ける。
Base64 と 16 進は同じバイト列をどう表すか
どちらも同じバイト列のテキスト表現ですが、密度と可読性のどちらを取るかが正反対です。
- Base64 は 3 バイトを 4 文字に詰め込むため、エンコード後のテキストは元データより約 33 パーセント大きくなります。
- 末尾の = はパディングで、入力の長さが 3 の倍数でないときに付加されます。
- 16 進は 1 バイトをちょうど 2 文字に対応させるため、サイズは 2 倍になりますが、どのバイトも位置が固定されます。
- この固定対応こそがデバッグで 16 進が有利な理由です。12 バイト目は常に 24 文字目から始まるため、仕様書のオフセットと目に見える位置が一致します。
Base64 から 16 進数のよくある質問
- 通常の Base64 デコーダーで画像や証明書が文字化けして見えるのはなぜですか
- 多くのデコーダーは結果を UTF-8 テキストとして表示します。バイナリのペイロードには正しいテキストにならないバイト値が含まれるため、置換文字になったり壊れたりします。16 進表示ならその問題は起きません。
- PEM ブロック全体や data URI をそのまま貼り付けられますか
- はい。BEGIN と END のマーカー行、および data URI のプレフィックスはデコード前に取り除かれ、改行も無視されます。
- 逆方向ではどの 16 進形式が受け付けられますか
- 0x プレフィックス付き、16 進数字のみ、スペースやコロン、ハイフンで区切られたバイト列のいずれも使えます。区切り文字は再エンコード前に除去されます。
- 検出されたファイル形式とは何ですか
- 先頭バイトを PNG、JPEG、GIF、PDF、ZIP、GZIP、DER の既知シグネチャと照合した結果です。どれにも一致しない場合は推測を出さず、形式を表示しません。
- 入力したデータはどこかにアップロードされますか
- いいえ。デコード、再エンコード、シグネチャ検出はすべてブラウザー内で行われるため、鍵や証明書、キャプチャしたフレームが wetool.site に送られることはありません。
Base64 to Hex とテキスト志向の Base64 デコーダー
一般的な Base64 エンコーダー・デコーダーは UTF-8 テキストの経路を通ります。Base64 をデコードし、その結果を文字列として解釈するのです。JSON や可読なトークンであれば問題ありませんが、PNG のヘッダーや DER でエンコードされた証明書、バイナリプロトコルのフレームは、テキストとしての意味を持たないバイト値を含みます。そのため出力は壊れ、戻す際にバイトが失われることもあります。このページはテキスト層に一切触れません。Base64 と 16 進をバイト単位で変換するため、0x00 も 0xFF も、UTF-8 として不正なあらゆる並びも、往復変換を経て変化せずに残ります。
16 進ダンプを 1 バイトずつ読む
ペイロードを 16 進にしてしまえば、最初の数バイトが何を手にしているかをたいてい教えてくれます。
- 89 50 4e 47 は PNG ファイル、ff d8 ff は JPEG データの始まりを示します。
- 25 50 44 46 は PDF、50 4b 03 04 は ZIP または ZIP ベースのコンテナー、1f 8b は GZIP です。
- 先頭の 30 82 は DER 構造の SEQUENCE タグで、PEM の Base64 をデコードした証明書や鍵の本体はこの形をしています。
- 16 進数字が奇数個ではバイトを構成できないため、コピーしたダンプの前後で桁が欠けていないか確認してください。