Base64 デコーダーへ移動

Base64 → 16 進数

Base64 を 16 進数に、1 バイトずつ。

Base64 を貼り付けると、デコードしたすべてのバイトが 16 進数で表示されます。読むためのオフセットと ASCII 列付きの定番ダンプに加え、16 進文字列をコピーを使えば、コードやデータベース、ハッシュの比較にそのまま貼り付けられる 48656c6c6f 形式の値が得られます。

更新日 · すべてブラウザ内で動作

Base64 を 16 進数に変換ツール

0 文字
デコード結果
種類: — サイズ: 0 B
オプション
全般
デコードのオプション

Ctrl+Enter デコード Ctrl+Shift+C 結果をコピー 入力欄にファイルをドロップすると読み込めます

Base64 を 16 進数に変換する方法

  1. 01

    Base64 を貼り付ける

    標準または URL セーフの Base64 を貼り付けます。パディングの欠落や空白は、変換前に自動で修復されます。

  2. 02

    16 進ダンプを読む

    「16 進」タブには 1 行に 16 バイトずつ、オフセット、16 進表記のバイト、印字可能な ASCII 文字が表示されます。

  3. 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 の先頭文字列
形式Base64 の先頭先頭バイト(16 進)
PNGiVBORw0KGgo89 50 4e 47 0d 0a 1a 0a
JPEG/9j/ff d8 ff
GIFR0lGOD47 49 46 38 (GIF8)
WebPUklGR52 49 46 46 (RIFF)
SVGPHN2Zy / PD94bWwg<svg / <?xml
BMPQk42 4d (BM)
ICOAAABAA00 00 01 00
PDFJVBERi025 50 44 46 2d (%PDF-)
ZIP / DOCX / XLSXUEsDB50 4b 03 04 (PK)
GzipH4sI1f 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 進表示の前に修復されます。