メインコンテンツへスキップ
FreeOnlineTools Go
日本語
比較

Base64 と 16 進エンコーディング: どちらを使用する必要がありますか?

{author} 著 · 2026-09-02を更新しました

簡単な回答

サイズが重要な場合 (電子メールの添付ファイル、データ URLs、API ペイロード) には Base64 を使用します。読みやすさが重要な場合 (デバッグ、ハッシュ表示、カラー コード、メモリ アドレス)、16 進数を使用します。 Base64 はよりコンパクトです。 Hex は人間による検査がより容易です。

導入

Base64 と Hex (16 進数) は両方ともバイナリからテキストへのエンコード スキームです。 Base64 は、3 バイトを 4 つの ASCII 文字にエンコードします (33% のオーバーヘッド)。 16 進数は、1 バイトを 2 つの ASCII 文字にエンコードします (100% オーバーヘッド)。どちらもテキストのみのコンテキストでバイナリ データを表すために使用されますが、効率と読みやすさの点で大きく異なります。

ステップバイステップ

  1. エンコード効率を比較する

    Base64: 3 バイト → 4 文字 = 33% のオーバーヘッド。 16 進数: 1 バイト → 2 文字 = 100% オーバーヘッド。 1 KB のデータの場合、Base64 は約 1.33 KB を生成します。 16 進数では 2 KB が生成されます。同じバイナリ データの場合、Base64 は 16 進数より 50% 小さくなります。

  2. 可読性を比較する

    16 進数では 16 文字 (0 ~ 9、A ~ F) が使用され、それぞれが 4 ビットを表します。バイト値を簡単に読み取ることができます。 Base64 は 64 文字 (A ~ Z、a ~ z、0 ~ 9、+、/) を使用し、それぞれ 6 ビットを表します。 Base64 出力は、バイトが文字境界を越えて分割されているため、手動で検査するのが困難です。

  3. ユースケースを比較する

    Base64: 電子メールの添付ファイル (MIME)、データ URLs、JWT ペイロード、API バイナリ データ転送。 16 進数: ハッシュ ダイジェスト (MD5、SHA-256)、カラー コード (#FF5733)、メモリ アドレス、MAC アドレス、バイナリ デバッグ。

  4. 文字セットと安全性を比較する

    Base64 は、URL に対して安全ではない + と / を使用します。 16 進数では 0 ~ 9 および A ~ F/a ~ f のみが使用されます。常に URL セーフでファイル名セーフです。 Hex はどのような状況でも安全です。 Base64 には URL 安全なバリアントが必要な場合があります。

  5. ユースケースに基づいて決定してください

    電子メール、データ URLs、JWT、API ペイロード: Base64 (サイズが重要)。ハッシュ表示、デバッグ、カラーコード、メモリアドレス: 16 進数 (読みやすさが重要)。

例

Base64 と 16 進数の同じデータ

入力: Input: 'Hello' (5 bytes) Base64: SGVsbG8= (8 chars) Hex: 48656c6c6f (10 chars)

出力: Base64 is 20% smaller. Hex is easier to inspect (each pair = 1 byte).

よくある問題

  • Base64 は URL 安全ではありません。標準の Base64 は、URLs とファイル名を分割する + と / を使用します。Web コンテキストには、URL 安全な Base64 (- と _) を使用します。
  • 16 進数では 100% のサイズ オーバーヘッドがあります。16 進数ではデータ サイズが 2 倍 (1 バイト → 2 文字) になるため、大規模なバイナリ転送では無駄になります。サイズが重要な場合は Base64 を使用してください。
  • Base64 パディングの曖昧さ: Base64 追加 = 一部のシステムで削除または拒否されるパディング文字 — エンコード側とデコード側の両方でパディングを一貫して処理します。
  • 16 進数の大文字と小文字の不一致: 一部のシステムでは大文字 (A ~ F) が使用され、その他のシステムでは小文字 (a ~ f) が使用されます。誤った不一致を避けるために、比較前に大文字と小文字を正規化します。

ヒント

  • サイズが重要な場合は、電子メールの添付ファイル、データの URLs、ペイロード API に Base64 を使用します。オーバーヘッドは Hex の 100% に対して 33% のみです。
  • ハッシュ ダイジェスト、カラー コード、MAC アドレス、人間の可読性が重要なデバッグには 16 進数を使用します。各バイトは目に見える 2 文字のペアです。
  • URLs、クエリ パラメーター、またはファイル名でバイナリ データをエンコードする場合は、URL 安全な Base64 (+ を - に、/ を _ に置き換え、strip =) を使用します。
  • Base64 と 16 進数の間で変換する場合は、常に最初に生のバイナリにデコードしてから再エンコードしてください。文字ごとに変換しないでください。

関連ツール

関連ガイド

参考文献