Base64 → Hex 変換ツール

Base64と16進数(hex)はどちらも生のバイト列を印字可能なASCIIで書く方法ですが、見せる情報が異なります。Hexは各バイトを2桁で明確に示します。Base64はより高密度ですが読み取りにくくなります。Base64からhexへ変換するのは、トークンをデバッグするとき、鍵のフィンガープリントを確認するとき、異なるエンコードを好むツール間でバイト列を比較するときに行う作業です。

変換の仕組み

  1. 1

    Base64文字列を貼り付け

    標準、URL-safe、パディングあり・なしのBase64に対応します。

  2. 2

    文字列を生のバイトへデコード

    Base64の4文字ごとに3バイトになります。

  3. 3

    各バイトを2桁のhexで表現

    大文字または小文字の出力を選べます。

  4. 4

    hexを確認

    空白区切り、`0x`接頭辞、連続表記から選べます。

Base64 SGVsbG8=は5バイトへデコードされます。

Base64 文字 バイト Hex
SGVs 48 65 6C 48 65 6C
bG8= 6C 6F 6C 6F

つまりSGVsbG8=のhex表現は48 65 6C 6C 6FHelloのASCII)です。

hexがBase64より多くを教えてくれる場面

  • 証明書のフィンガープリント — SHA-1やSHA-256のフィンガープリントは、通常AB:CD:...のようにコロン付きのhexで表示されます。Base64でエンコードされたハッシュをhexへ変換すると、バイト単位で照合できます。
  • 鍵素材 — AES鍵、HMACのシークレット、Ed25519の秘密鍵は通常hexでログに記録されます。同じ鍵でもBase64ではまったく違って見えるため、変換して同一かどうかを確認できます。
  • JWT署名 — JWTのsignatureセグメントはURL-safe Base64です。hexへ変換すると、デバッグログ中の期待値と簡単に比較できます。
  • TLSセッションID / ハンドシェイクデータ — Wiresharkはこれらをhexで表示しますが、アプリケーション側ではBase64で記録することがあります。

出力形式オプション

Base64:       SGVsbG8=
Hex (連続):   48656C6C6F
Hex (空白):   48 65 6C 6C 6F
Hex (0x):     0x48 0x65 0x6C 0x6C 0x6F
Hex (コロン): 48:65:6C:6C:6F
Hex (C):      \x48\x65\x6C\x6C\x6F

よくある落とし穴

  • URL-safe Base64 — 入力に-または_が含まれていれば、URL-safe形式です。このツールは両方を自動で受け付けます。
  • パディング — 末尾の=があるBase64もないBase64も受け付けます。デコーダーは通常どちらにも寛容です。
  • 貼り付けた入力の空白 — デコード前に改行とスペースは取り除かれます。

よくある質問

はい、かなり長くなります。Hexは1バイトあたり2文字を使い、Base64は約1.33文字です。つまりhexはBase64より50%長くなりますが、各バイトが明確に見え、大文字小文字を区別しません。

はい。Hex → Base64 変換ツールを使ってください。どちらの方向でもバイト列は保持され、変わるのはテキスト表現だけです。

入力が実際にはBase64ではない、別のアルファベット(Crockford Base32、Base58など)の文字が混ざっている、または途中で切れている可能性があります。出どころを確認し、まずは通常のテキストとしてデコードして意味があるか見てください。

はい。hexもBase64もバイト列を往復変換できる表現です。両者の間で変換してもバイト列は完全に保持されます。

関連ツール