ファイルを選択
  1. base64hub
  2. その他の基数
  3. Base64 → Hex

Base64 を Hex(16進数)に変換:生のバイト列を確認

Base64 を貼り付けると、デコードしたバイト列を 16進数で表示します。小文字か大文字か、: や 0x などの区切り文字、読みやすいダンプにしたいときは 1 行 16 または 32 バイトを選べます。

無料 登録不要・制限なし ローカル アップロードなし 16 または 32 バイト/行で読みやすいダンプに 更新日 2026/10/27
入力 0バイト 0 B出力 0

ブラウザ内で処理されます。このページがデータをどこかに送信することはできません – その根拠

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

  1. 入力 · Base64 に Base64 を貼り付けます。改行、スペース、= パディングの欠落、URLセーフの文字はすべて受け付けます。
  2. 出力 · Hex(16進数) にバイト列が表示されます。バイト列が既知の形式と一致すれば、ステータス行の 推定形式 に判別したファイル形式が表示されます。
  3. 出力の下で 大文字/小文字、区切り文字、1 行あたりのバイト数 を選びます。
  4. 16進数を 出力をコピー するか ダウンロード します。バイトを保存 は、デコードしたバイト列そのものをファイルとして書き出します。

逆方向には、Hex(16進数) → Base64 の切り替えか、Hex を Base64 に変換 を使ってください。

出力オプション

Base64 の SGkh/w== には 4 バイトが入っています。それをどう書き出すかは 区切り文字 の設定で決まります。

区切り文字出力用途
なし486921ffsha256sum の出力との比較、データベース、URL
スペース48 69 21 ff1 バイトずつ読む、16進エディター
:48:69:21:ff証明書や鍵のフィンガープリント
0x0x48 0x69 0x21 0xffC、C#、Java の定数
\x\x48\x69\x21\xffPython、C、シェルの文字列リテラル

大文字/小文字 で 48 69 21 FF に切り替わります。1 行あたりのバイト数 を 16 にすると、1 行 16 バイトのおなじみのダンプ形式になり、オフセット 0x40 を探したり、ヘッダーの長さを数えたりしやすくなります。

先頭のバイトを読む

ほとんどのファイル形式は決まったシグネチャで始まり、16進数ならそのシグネチャを簡単に見分けられます。代表的な Base64 の接頭辞と、そのデコード結果です。

Base64 の先頭16進数形式
iVBORw0KGgo89 50 4e 47 0d 0a 1a 0aPNG
/9j/ff d8 ffJPEG
JVBERi025 50 44 46 2d(%PDF-)PDF
UEsDBA50 4b 03 04(PK)ZIP、および DOCX、XLSX、JAR、APK
H4sI1f 8b 08gzip

先頭のバイトがどれにも一致しない場合でも、想定外の文字コードのテキストか、暗号化されたデータの可能性があります。暗号化データは 16進数で見ると一様にランダムに見えます。さらに多くの例は よく見る Base64 の接頭辞の一覧 にあります。データが開きたいファイルだと分かったら、Base64 をファイルに変換 でプレビューして保存できます。

ダイジェストとチェックサムの比較

チェックサムツールが出力するのは 16進数なので、ヘッダーや設定ファイルにある値を自分で計算した md5sum や sha256sum と比べるには、Base64 を 16進数に変換します。

見かける場所Base6416進数
hello の Content-MD5 ヘッダーXUFAKrxLKna5cZ2REBfFkg==5d41402abc4b2a76b9719d911017c592
hello の SHA-256LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

integrity="sha384-…" 属性、SHA256: 形式の SSH フィンガープリント(パディングなしの Base64)、JSON 内のバイナリの鍵も同様です。16進数で違えばバイト列が違います。一致していれば、Base64 での違いはパディングや URLセーフのアルファベットといった表記上のものにすぎません。

コードで Base64 を 16進数に変換する

import base64
base64.b64decode("SGkh/w==").hex()        # '486921ff'
base64.b64decode("SGkh/w==").hex(" ")     # '48 69 21 ff'
Buffer.from("SGkh/w==", "base64").toString("hex");   // '486921ff'

Python の b64decode は、validate=True を渡さない限りアルファベット外の文字を黙って捨てるので、URLセーフな文字列がエラーにならずに間違ったバイト列にデコードされることがあります。Node の "base64" デコーダーは両方のアルファベットを受け付けます。詳しくは Python と Node.js のページを参照してください。

よくある質問

Linux で Base64 を 16進数にデコードするには?

echo 'SGkh/w==' | base64 -d | xxd -p で 486921ff が表示されます。xxd -p は 30 バイトごとに改行します。1 行 32 バイトにするには -c 32 を付けてください。xxd がない場合は od -An -tx1 を使います。

16進数に ef bf bd が含まれるのはなぜですか?

この 3 バイトは置換文字 � の UTF-8 表現です。どこかのツールが Base64 をいったんテキストにデコードし、UTF-8 として不正なバイトをすべて置き換えてしまったのです。このページのように直接 16進数にデコードすれば、元のバイト列がそのまま得られます。

16進数は Base64 と比べてどのくらい長くなりますか?

約 1.5 倍です。Base64 の 4 文字は 3 バイトを表し、3 バイトは 16進数で 6 桁になります。44 文字の SHA-256 の値は 16進数で 64 桁になります。

Base64URL や data URI も受け付けますか?

はい。- と _ は + と / と同様に読み、パディングがなくても問題ありません。data:...;base64, 接頭辞は読み飛ばします。