Base64 → 16 進数
Base64 を 16 進数に、1 バイトずつ。
Base64 を貼り付けると、デコードしたすべてのバイトが 16 進数で表示されます。読むためのオフセットと ASCII 列付きの定番ダンプに加え、16 進文字列をコピーを使えば、コードやデータベース、ハッシュの比較にそのまま貼り付けられる 48656c6c6f 形式の値が得られます。
更新日 · すべてブラウザ内で動作
Base64 を 16 進数に変換ツール
JSON Web Token
オプション
Ctrl+Enter デコード Ctrl+Shift+C 結果をコピー 入力欄にファイルをドロップすると読み込めます
Base64 を 16 進数に変換する方法
- 01
Base64 を貼り付ける
標準または URL セーフの Base64 を貼り付けます。パディングの欠落や空白は、変換前に自動で修復されます。
- 02
16 進ダンプを読む
「16 進」タブには 1 行に 16 バイトずつ、オフセット、16 進表記のバイト、印字可能な ASCII 文字が表示されます。
- 03
必要な形式でコピーする
「コピー」は表示どおりのダンプを、「16 進文字列をコピー」はバイト列を小文字の連続した 16 進値としてコピーします。
Base64 が 16 進数になる仕組み
Base64 と 16 進数は、同じバイト列をテキストとして書き表す 2 つの方法です。Base64 は 1 文字に 6 ビット、 16 進数は 1 文字に 4 ビットを詰めます。両者の変換は、Base64 をバイト列にデコードし、各バイトを 2 桁の 16 進数で 書くだけです。そのため Base64 の 4 文字(3 バイト)は 16 進数の 6 桁になり、16 進表記は Base64 の約 1.5 倍の 長さになります。
計算例:SGVsbG8= は「Hello」の 5 バイトにデコードされ、16 進数では 48 65 6c 6c 6f、
1 つの文字列なら 48656c6c6f になります。
16 進ダンプの読み方
各行は先頭バイトのオフセット(16 進)で始まり、8 バイトずつ 2 組に分けた 16 バイトが続き、最後に同じバイトを
ASCII で表示します(印字できない値は点になります)。xxd や hexdump -C と同じ形式なので、
出力を並べて比較できます。先頭のバイトからファイル形式がわかります:
| 形式 | Base64 の先頭 | 先頭バイト(16 進) |
|---|---|---|
| PNG | iVBORw0KGgo | 89 50 4e 47 0d 0a 1a 0a |
| JPEG | /9j/ | ff d8 ff |
| GIF | R0lGOD | 47 49 46 38 (GIF8) |
| WebP | UklGR | 52 49 46 46 (RIFF) |
| SVG | PHN2Zy / PD94bWwg | <svg / <?xml |
| BMP | Qk | 42 4d (BM) |
| ICO | AAABAA | 00 00 01 00 |
JVBERi0 | 25 50 44 46 2d (%PDF-) | |
| ZIP / DOCX / XLSX | UEsDB | 50 4b 03 04 (PK) |
| Gzip | H4sI | 1f 8b 08 |
Base64 を 16 進数で見たい場面
- ハッシュと鍵。API は SHA-256 ダイジェスト、HMAC、鍵 ID を Base64 で返すことが多い一方、 ドキュメントや CLI は 16 進数で表示します。変換すれば直接比較できます。
- バイナリプロトコル。Base64 で取得した protobuf メッセージ、証明書、パケットの正確なバイトを 調べられます。
- データベースのリテラル。Postgres の
bytea('\x48656c6c6f')や MySQL のX'48656C6C6F'は Base64 ではなく 16 進数を受け付けます。
コードで Base64 を 16 進数に変換する
# Python
base64.b64decode("SGVsbG8=").hex() # '48656c6c6f'
// Node.js
Buffer.from("SGVsbG8=", "base64").toString("hex")
# Shell
echo "SGVsbG8=" | base64 --decode | xxd -p
# And back again: hex -> Base64
echo "48656c6c6f" | xxd -r -p | base64
16 進数ではなくテキストにデコードしたい場合は、メインの Base64 デコードツールをお使いください。
その他のデコーダー
Base64 をデコードするその他の方法
よくある質問
Base64 を 16 進数に変換:よくある質問。
Base64 を 16 進数に変換するには?
このページの入力欄に Base64 を貼り付けてください。バイト列にデコードされ、すぐに 16 進ダンプとして表示されます。ダンプは「コピー」、連続した 16 進値は「16 進文字列をコピー」でコピーできます。Python なら base64.b64decode(s).hex() で同じ変換ができます。
16 進数が Base64 より長くなるのはなぜ?
16 進数は 1 文字に 4 ビット、Base64 は 6 ビットを格納するため、同じバイト列でも 16 進数では 1.5 倍の文字数が必要です。3 バイトは Base64 なら 4 文字、16 進数なら 6 桁になります。
16 進数を Base64 に戻せますか?
はい。16 進数をバイト列にデコードし、そのバイト列を Base64 にエンコードします。コマンドラインなら xxd -r -p | base64、Python なら base64.b64encode(bytes.fromhex(h)) です。
URL セーフ Base64 にも対応していますか?
はい。- や _ を含む文字列は base64url として判別されて自動で変換され、欠けている = のパディングも 16 進表示の前に修復されます。