logo
GeekFormat

Base64-Hex双方向変換

六角入力
0文字

Base64と16進数(Hex)の双方向オンライン変換ツール。Hexバイト列からBase64エンコードへの変換、Base64からHex文字列へのデコードに対応。スペースや改行で区切られたHex入力を自動認識して処理し、0xプレフィックスを自動除去。Base64→Hexでは小文字または大文字での出力を選択でき、入力後はリアルタイム変換。不正文字や奇数長Hexなどのエラーは即座に表示。ワンクリックで結果をコピー、txtファイルとしてダウンロード可能。方向切り替え時にはコンテンツを自動交換。すべての処理はブラウザ内のJavaScriptでローカル実行され、データはサーバーにアップロードされません。パケットキャプチャデータ解析、ネットワークプロトコルデバッグ、バイナリログ変換、APIパラメータ処理に最適です。

関連おすすめ

ユースケース

  • Wireshark、Charles、Fiddlerなどのパケットキャプチャツールが出力する16進数バイナリデータをBase64に変換し、APIインターフェースデバッグに使用
  • インターフェースから返されるBase64エンコードされたバイナリデータをHexにデコードし、プロトコルフィールドの内容をバイト単位で分析
  • 暗号鍵、署名、ハッシュ値のHex表現とBase64表現の間の変換処理
  • ネットワークプロトコル開発デバッグ時に、パケットキャプチャのHex形式とインターフェースのBase64パラメータ形式を素早く変換
  • バイナリログ分析:ログ内の16進数ダンプコンテンツをBase64に変換して問題再現に使用、または逆変換
  • CTFコンテスト、セキュリティリサーチでのエンコード問題処理、HexとBase64間の素早い切り替え
  • 開発時にインターフェースドキュメントに従ってHex表現のバイナリデータをBase64に変換し、JSONリクエストボディに格納
  • サードパーティAPIとの連携時に、ドキュメント内のHexサンプルを実際に使用可能なBase64パラメータ値に変換
  • Hex形式のバイナリファイル断片をBase64に変換し、data URIや設定ファイルへの埋め込みに使用
  • Base64エンコード・デコードが正しいか検証するため、Hexに戻して元のバイト列と比較
  • エンコーディング原理の学習時に、HexとBase64の2つのエンコード方式の対応関係を視覚的に確認
  • モバイルデバッグ時の一時的なトランスコード。PCを起動せずに素早くエンコード問題を処理

特徴

  • 双方向変換:HEXからBase64とBase64からHEXの両方に対応し、1つのツールで両方向の変換ニーズに対応
  • スマート入力処理:Hex内のスペース、改行、0xプレフィックスを自動除去。連続Hex形式とスペース区切り形式(例:48 65 6C 6C 6F)の両方に対応
  • 大文字小文字切り替え:Base64→Hex時に小文字(a-f)または大文字(A-F)の16進数出力を選択可能で、様々なシナリオに対応
  • リアルタイム変換:入力後300msのデバウンスで自動変換。ボタンクリック不要で、入力すると即座に結果が表示
  • 明確なエラー表示:不正な16進数文字、Hex文字列の長さが偶数でない場合に日本語でエラーを表示し、問題の特定が容易
  • 双方向スマート切り替え:変換方向を切り替える際、出力結果を自動的に新しい方向の入力として使用し、双方向検証や素早い逆変換が可能
  • ワンクリックコピー:変換完了後、出力内容をワンクリックでクリップボードにコピー。インターフェースパラメータやドキュメントに直接使用可能
  • 結果ダウンロード:変換結果をtxtテキストファイルとしてダウンロード可能で、保存や共有に便利
  • ワンクリッククリア:入出力内容を素早く消去し、新しい変換を開始可能
  • 文字カウント:入出力エリアにリアルタイムで文字数を表示し、データ長の見積もりに便利
  • 等幅フォント表示:コード用等幅フォントで16進数とBase64コンテンツを表示し、開発者に適した読みやすさを実現
  • パネル幅調整可能:PCでは中央のセパレータをドラッグして入出力パネルの幅の比率を調整可能
  • モバイル対応:レスポンシブデザインにより、スマートフォンではタブで入出力エリアを切り替え、タッチ操作に最適化
  • ブラウザ内ローカル処理:すべての変換はブラウザ内のJavaScriptでローカル実行され、サーバーを経由せずデータセキュリティを確保

使い方

  1. 変換方向を選択:Hex→Base64 または Base64→Hex。大文字Hex出力が必要な場合はBase64→Hexモードで「大文字」を選択
  2. 変換するHex文字列またはBase64文字列を左側の入力欄に貼り付け(スペース区切り、0xプレフィックス付きのHexに対応)
  3. 入力後、ツールが自動的にリアルタイム変換を行い、右側に結果が即座に表示。エラーがある場合は赤色で表示
  4. コピーボタンをクリックして結果をコピーするか、ダウンロードボタンをクリックしてtxtファイルとして保存。方向切り替え時は結果が自動的に入力されて変換を継続

よくある質問

どのような入力形式に対応していますか?

Hex入力は以下に対応:①連続16進数文字列(例:48656C6C6F);②スペース区切りのバイト(例:48 65 6C 6C 6F);③0xプレフィックス付き形式(例:0x48 0x65);④改行区切りの複数行Hex。ツールは空白とプレフィックスを自動的に除去してから変換します。Base64入力は空白文字を自動的に無視します。

Base64を16進数に戻すことはできますか?

はい、可能です。方向切り替えボタンで「Base64 → Hex」を選択すると、Base64を16進数文字列にデコードできます。出力するHexの小文字・大文字も選択可能です。

「Hex文字列の長さは偶数である必要があります」と表示されるのはなぜですか?

16進数では2文字が1バイト(00-FF)を表すため、正しいHex文字列の長さは常に偶数になります。このエラーが表示された場合は、入力に文字の余分や不足がないか、コピー時に切り捨てられていないかを確認してください。

「不正な16進数文字が含まれています」と表示されるのはなぜですか?

16進数では0-9とa-f/A-Fの16文字のみが許可されており、その他の文字(g-zなどの文字や特殊記号)が含まれるとエラーになります。Hex以外のコンテンツをコピーしていないか、Base64をHex入力欄に貼り付けていないかを確認してください。

変換方向を切り替えるとコンテンツは失われますか?

失われません。方向切り替えボタンをクリックすると、ツールは自動的に現在の出力内容を新しい方向の入力として使用します。変換結果を手動でコピー&ペーストすることなく、逆変換して検証することができます。

入力するHexに0xプレフィックスが付いていても処理できますか?

はい、可能です。ツールは先頭の0xプレフィックスを自動的に検出して除去します。文字列全体の先頭に0xがある場合も、バイトごとに0xが付いている場合(例:0x48 0x65)も正しく処理できます。

変換結果をAPIリクエストに直接使用できますか?

はい、可能です。出力されるBase64はRFC 4648標準エンコードのプレーンテキスト文字列で、JSONフィールド、HTTPリクエストボディ、URLパラメータ(URLエンコードに注意)、ヘッダーに直接使用できます。出力されるHexは純粋な16進数文字列で、バイナリプロトコルの記述、鍵の表現などのシナリオで直接使用できます。

なぜHexとBase64の間で変換する必要があるのですか?

Wireshark、Charlesなどのパケットキャプチャツール、プロトコルアナライザ、バイナリログは通常、バイトストリームを16進数で表示し、バイト単位での確認を容易にします。一方、APIインターフェース、JSON、テキスト設定ファイルでは、Base64エンコードでバイナリデータを転送する必要があります(Base64はテキスト安全な文字のみを使用するため)。Hex→Base64はキャプチャしたバイナリデータをインターフェースで使用可能なテキスト形式に変換し、Base64→HexはBase64エンコードされたデータをバイト単位で読み取り可能な16進数に戻してデバッグと分析に使用します。

大きなファイルや長いHexも変換できますか?

数十KB程度のコンテンツであればローカル変換は全く問題なく、ブラウザでの処理速度も高速です。純粋なフロントエンドのtextarea入力のため、数MBを超えるような特に大きなコンテンツは専用ツールの使用を推奨しますが、日常的な開発でのパケットキャプチャデバッグ、インターフェースパラメータ処理には十分対応できます。

変換するデータはサーバーにアップロードされますか?

アップロードされません。すべてのエンコード・デコード処理はブラウザ内のJavaScriptで完全にローカル実行され、入力されたHexまたはBase64コンテンツがネットワークを通じてサーバーに送信されることはありません。ページを閉じるとデータは失われるため、機密性の高い鍵やパケットキャプチャデータも安心して処理できます。

大文字の16進数出力に対応していますか?

対応しています。Base64→Hexモードで「小文字」/「大文字」ボタンを切り替えると、a-fまたはA-Fの出力を選択できます。プロトコル、規格、ドキュメントによっては大文字Hex出力が要求される場合があります。

スマートフォンでも使用できますか?

はい、使用できます。ツールはレスポンシブデザインを採用しており、スマートフォンでは入出力がタブで表示され、パネルサイズはスマートフォン画面に最適化されています。タッチ操作に対応しているため、外出先でのデバッグ時にも素早く変換できます。

変換結果はどのように保存しますか?

2つの方法があります:①コピーボタンをクリックしてクリップボードに直接コピーし、必要な場所に貼り付ける;②ダウンロードボタン(下向き矢印アイコン)をクリックして、結果をtxtテキストファイルとしてローカルに保存する。

HexとBase64はそれぞれ何ですか?

16進数(Hexadecimal/Hex)は、0-9とA-Fの16文字でバイナリデータを表現する方式で、各バイトを2文字(00-FF)で表します。人間がバイナリコンテンツをバイト単位で読み取るのに適しています。Base64は64個の印字可能文字(A-Z,a-z,0-9,+,/)でバイナリを表現するエンコード方式で、主にテキストプロトコル(JSON、HTTP、Emailなど)でバイナリデータを安全に転送するために使用され、エンコード後のサイズは元のバイナリより約33%大きくなります。

このツールと単純なBase64エンコード・デコードの違いは何ですか?

通常のBase64エンコード・デコードはテキスト文字列↔Base64の変換ですが、本ツールが処理するのは元のバイト列です。Hex自体がバイトの16進数表現であるため、Hex↔Base64変換は純粋なバイトレベルのトランスコードであり、テキストエンコーディング(UTF-8/GBKなど)の問題は発生しません。真のバイナリデータ、暗号鍵、プロトコルパケットなどの処理に適しています。

Hex(16進数)とBase64エンコーディングについて

コンピュータとネットワーク開発では、異なるバイナリ表現形式の間で変換する必要が頻繁にあります。16進数(Hexadecimal、略してHex)とBase64は、バイナリデータのテキスト表現として最も一般的に使用される2つの方式であり、それぞれ適した用途があります:Hexは人間がバイト単位で読み取ってデバッグするのに便利で、Base64はテキストプロトコルでバイナリデータを転送するのに適しているため、開発者は両者の間で頻繁に変換する必要があります。

16進数は0-9とA-Fの16文字でデータを表現し、各バイトは2つの16進数文字(00からFF)に対応します。1バイトがちょうど2桁の16進数になるため、この表現方法は非常に直感的です——2文字で1バイトのため、位置を揃えて確認しやすく、Wireshark、Charlesなどのパケットキャプチャツール、16進数エディタ、デバッガ、プロトコルドキュメントではバイナリデータをHexで表示するのが一般的で、開発者がバイトオフセットやフィールド値を特定するのに便利です。

Base64は、64個の印字可能ASCII文字(A-Z、a-z、0-9、+、/、およびパディングとして=)で任意のバイナリデータを表現するエンコード方式です。主な役割は、テキストのみを処理できるプロトコルを通じてバイナリデータを安全に転送できるようにすることです——JSONに元のバイナリバイトを直接配置することはできず、HTTPヘッダーの値には非印字文字を含めることができず、Email本文に添付ファイルを直接含めることはできません——バイナリをBase64テキストにエンコードすることでこの問題が解決します。代償として、エンコード後のサイズは約33%大きくなります(3バイトが4文字にエンコードされます)。

なぜインターフェースでHexを直接使用してバイナリを転送しないのでしょうか?もちろん使用することもできますが、Base64の方が多少効率的です:Hexは1バイトを2文字で表現するためエンコード効率は50%(1バイト→2文字)ですが、Base64は3バイトを4文字で表現するためエンコード効率は75%です。そのため、同じバイナリデータはBase64で表現した方が短くなり、テキスト転送シナリオでより一般的に使用されます。一方、Hexはより直感的で人間が読んで分析しやすいため、パケットキャプチャデバッグではHexを使用し、インターフェース転送ではBase64を使用するというように、両者の変換は開発者にとって一般的な要件となっています。

本ツールの変換は完全にバイトレベルの純粋なトランスコードであり、テキストエンコーディング(UTF-8、GBKなど)の仮定は一切含まれません:Hex文字列は直接バイト配列に解析され、バイト配列は直接Base64にエンコードされます。逆にBase64は直接バイト配列にデコードされ、バイト配列は直接Hex文字列として出力されます。この点は重要です——通常の「文字列のBase64エンコード」はテキストエンコーディング変換を伴いますが、Hex↔Base64は純粋なバイト表現間の変換であるため、結果は一意に定まり、文字化けの問題は発生しません。

実際の使用シナリオを考慮して柔軟な入力形式に対応しています:Wiresharkがデフォルトで出力するHexはバイト間がスペースで区切られており、多くのドキュメントのHexには0xプレフィックスが付いており、コピー&ペースト時には改行が含まれることがよくあります。空白と0xプレフィックスを自動的に除去することで、手動でクリーンアップする手間が省け、貼り付けるだけですぐに変換できるため、デバッグ効率が大幅に向上します。

大文字小文字の切り替えも実用的な機能です:規格やシステムによってHexの大文字小文字の好みは異なります——Unix系ツールや多くのオープンソースプロジェクトは小文字(a-f)を使用するのが一般的ですが、Windowsや一部の企業規格では大文字(A-F)を使用するのが一般的で、暗号理論の分野では大文字が要求されることがあります。ツールはBase64→Hex時に大文字小文字の切り替えを提供しており、手動で大文字小文字を変換する必要がありません。

ローカル処理はセキュリティと速度の保証です:エンコード変換は本質的に単純な数学的演算であり、サーバー側での計算は必要なく、ブラウザ内でJavaScriptを使用してローカル処理することで非常に高速(マイクロ秒レベル)です。また、機密データ(鍵、署名、未公開のプロトコルデータ)がコンピュータから外部に送信されることがなく、ネットワーク転送による漏洩リスクも存在しません。イントラネットの隔離された環境やオフライン環境でも正常に使用できます。

术语表

16進数 (Hex/Hexadecimal)
基数16の記数法。0-9とA-F(a-f)で数値を表現し、2つの16進数文字がちょうど1バイト(00-FF)を表します。バイナリデータの最も直感的なテキスト表現方法であり、デバッグ、パケットキャプチャ、プロトコルドキュメントで広く使用されています。
Base64
64個の印字可能ASCII文字に基づくバイナリエンコード方式。3バイトのバイナリを4つのテキスト文字にエンコードし、JSON、HTTP、Emailなどのテキストプロトコルでバイナリデータを安全に転送するために使用されます。エンコード後のサイズは約1/3大きくなります。
バイト (Byte)
コンピュータデータの基本単位。1バイト=8ビット(bit)で、0-255の数値を表現できます。Hexでは2文字で表現され、ネットワークプロトコルとバイナリデータの基礎単位です。
RFC 4648
Base64エンコーディングの公式標準ドキュメント。標準Base64とURLセーフBase64のエンコードルールを定義しています。本ツールは標準Base64エンコーディングを使用しています。
0xプレフィックス
プログラミングで16進数を表す際の一般的なプレフィックス(例:0x1Aは10進数の26を表します)。多くのドキュメントやコード内のHexには0xプレフィックスが付いていますが、ツールは自動的に認識して除去します。
Wireshark
最も人気のあるネットワークパケットキャプチャ解析ツール。デフォルトで16進数+ASCII形式でネットワークパケットの内容を表示し、開発者がネットワークプロトコルをデバッグするための一般的なツールです。出力されるHexデータは本ツールの一般的な入力ソースです。
バイナリトランスコード
異なるバイナリデータ表現形式(Hex、Base64、Base32、Base58など)の間で変換すること。元のデータ自体は変更せず、表現方法のみを変更します。
等幅フォント (Monospace)
各文字の幅が同じフォント。コード、16進数データ、表などの位置合わせが必要なコンテンツの表示に適しています。ツールはデフォルトでシステムの等幅フォントを使用してエンコードコンテンツを表示します。
デバウンス (Debounce)
フロントエンドで一般的なパフォーマンス最適化技術。入力が停止してから300ms後に変換を実行することで、キーを押すたびに計算が実行されるのを防ぎ、大量入力時のスムーズさを向上させます。
エンコード効率
元のデータ長とエンコード後の長さの比率。Hexのエンコード効率は50%(1バイト→2文字)、Base64のエンコード効率は75%(3バイト→4文字)で、Base64はHexより約25%テキスト長を節約できます。
パディング文字 (=)
標準Base64エンコーディングの末尾にある=記号はパディングに使用され、エンコード後の長さを4の倍数にします。デコード時にパディング文字は無視され、標準Base64の一部です。
ローカル処理
すべての計算がユーザーのブラウザ内でJavaScriptにより実行され、データがサーバーにアップロードされないこと。高速かつ安全で、機密データの処理に適しています。

HexとBase64のエンコード特性比較

2つのバイナリ表現方式の特徴比較:

特性16進数 (Hex)Base64
文字セット0-9, A-F (16文字)A-Z,a-z,0-9,+,/,= (65文字)
エンコード効率50% (1バイト → 2文字)75% (3バイト → 4文字)
可読性高(2文字1バイト、バイト単位分析が容易)低(直感的でなく、直接読み取るのが困難)
主な用途パケットキャプチャ解析、16進数エディタ、プロトコルドキュメント、鍵表現JSON/HTTP/Emailでのバイナリ転送、Data URI、APIパラメータ
大文字小文字非区別(a-fとA-Fは等価)区別あり(Aとaは異なるエンコード)
例("Hello")48656C6C6FSGVsbG8=

一般的なバイナリデータエンコード対応表

テキスト"Hello"の各エンコードでの表現:

エンコード形式エンコード結果文字数
元のテキストHello5バイト
Hex (小文字)48656c6c6f10文字
Hex (大文字)48656C6C6F10文字
標準Base64SGVsbG8=8文字 (パディング1個含む)

一般的なエラー対処表

変換エラー発生時の参考:

エラー表示考えられる原因解決方法
不正な16進数文字が含まれていますHexにg-z、G-Z、または特殊記号が含まれているBase64や他のテキストを誤って貼り付けていないか確認し、不正な文字を削除
Hex文字列の長さは偶数である必要がありますHexの文字数が奇数で、1文字多いか少ない入力の最初と最後を確認し、切り捨てられていないか確認
(Base64デコードエラー)Base64文字列が破損している、長さが正しくない、または不正な文字が含まれているBase64が完全か、パディングの=が不足していないか確認

Privacy & Security

本Base64-Hex双方向変換ツールのすべてのエンコード・デコード処理は、ユーザーのブラウザ内でJavaScriptにより完全にローカル実行されます。入力されたHex文字列およびBase64コンテンツがサーバーにアップロードされることはなく、記録、キャッシュ、保存されることもありません。入力、変換、コピー、ダウンロードはすべてローカルブラウザのメモリ内で実行され、ページを閉じるか更新するとすべての一時データは自動的に消去されます。機密性の高い暗号鍵、パケットキャプチャデータ、内部プロトコルデータも安心して処理でき、いかなる漏洩リスクも存在しません。

Authoritative References

Troubleshooting

Hexを貼り付けた後に不正文字エラーが表示された場合はどうすればよいですか?

入力にg-z/G-Z以外の文字、日本語の句読点、特殊記号が含まれていないか確認してください。WiresharkからコピーしたHexにはASCIIサイドバーのコンテンツが含まれることがあるため、16進数部分のみをコピーしてください。また、変換方向がHex→Base64になっていることを確認し、Base64をHex入力欄に貼り付けないようにしてください。

Hexの長さが奇数でエラーになる原因は何ですか?

2つのHex文字が1バイトを表すため、正しいHexは常に偶数長になります。一般的な原因:①コピー時に最後の1文字が漏れている;②先頭の0xがコンテンツとしてカウントされ、長さから2を引くと奇数になる;③途中に余分なスペースがあり解析エラーが発生している。各バイトが2文字になっていることを確認してください。

Base64デコードに失敗してエラーになった場合はどうすればよいですか?

以下を確認してください:①Base64が完全で、切り捨てられていないか;②不正な文字が含まれていないか(Base64で許可されるのはA-Z,a-z,0-9,+,/,=のみ);③末尾のパディング=の数が正しいか(0、1、または2個);④URLセーフBase64ではないか(+と/の代わりに-と_を使用)。本ツールは現在URLセーフBase64に対応していません。

なぜ私が変換したBase64は他の人のものと異なるのですか?

テキスト文字列のBase64の場合、エンコーディング(UTF-8、GBK)が異なると結果が異なります。しかし本ツールはHex↔Base64の純粋なバイトレベルのトランスコードであるため、Hexが同じであれば出力されるBase64は必ず同じになります。異なる場合は以下を確認してください:①Hexが完全に一致しているか(スペースは影響しませんが、0xも影響しません);②大文字小文字はHexの解析に影響しない;③Hex内に不可視の特殊文字が混入していないか。