Base64 to Hex
Base64と16進数の相互変換
Base64
Hex
Base64からHexへの変換とは?
Base64からhexへの変換は、バイナリデータを表現する2つの一般的なテキスト符号化方式を相互変換する処理です。Base64は64種類のASCII文字(A〜Z、a〜z、0〜9、+、/)を使ってバイナリデータを表し、3バイトごとに4文字へエンコードします。16進数(hexadecimal)は0〜9とa〜fの16文字からなるアルファベットで、1バイトをちょうど2文字で表します。両形式の変換は2段階で行われます:Base64文字列を生のバイト列にデコードし、そのバイト列を目的の形式に再エンコードします。
16進数表記は、低レベルプログラミング・暗号化・ネットワークプロトコルにおけるバイナリデータの標準表現です。hexの各文字は4ビット(ニブル)に直接対応しており、個々のバイト値を直感的に読み取れます。例えばSHA-256ハッシュは、ほぼ常に64文字のhex文字列として表示されます。一方、Base64はコンパクトさを優先した設計で、同じハッシュをBase64で表すと44文字になります。Base64はメール添付ファイル(MIME)・データURI・API通信ペイロードの標準エンコーディングです。
いずれのエンコーディングもRFC 4648で定義されています。両者の変換はロスレスです:データが追加・削除されることはなく、テキスト表現が変わるだけです。そのため、暗号化ペイロードのデバッグ、証明書フィンガープリントの確認、あるいは異なる表示形式を使うシステム間でのハッシュ出力照合など、日常的な作業でBase64からhexへの変換が活用されます。
このBase64 → Hex変換ツールを使う理由
このツールはブラウザ上でBase64と16進数を直接変換します。データがマシン外に送信されることはなく、入力と同時にリアルタイムで変換が行われます。
Base64 → Hex変換の活用シーン
Base64と16進数エンコーディングの比較
Base64と16進数はどちらもバイナリデータを印刷可能なテキストに変換しますが、コンパクトさと可読性の間で異なるトレードオフを持ちます。以下の表に主な違いをまとめます。
| プロパティ | Base64 | Hexadecimal |
|---|---|---|
| 使用文字 | A-Z a-z 0-9 + / = | 0-9 a-f |
| 1文字あたりのビット数 | 6 | 4 |
| サイズオーバーヘッド | 元サイズより約33%大きい | 元サイズより100%大きい |
| 可読性 | コンパクトだが不透明 | 1バイトが2文字で明示される |
| 主な用途 | メール・データURI・API | 暗号ハッシュ・MACアドレス・カラーコード |
| 仕様 | RFC 4648 | IEEE 754, RFC 4648 sec 8 |
変換例
以下の表は同一のバイト列をBase64と16進数で表した例です。hex出力は常にバイト数のちょうど2倍の文字数になり、Base64の長さは ceil(バイト数 / 3) * 4 になることを確認できます。
| 入力(テキスト / バイト列) | Base64 | Hex |
|---|---|---|
| Hello | SGVsbG8= | 48656c6c6f |
| AB | QUI= | 4142 |
| 0xFF | MHhGRg== | 30784646 |