Hex エンコード & デコード
無料オンライン Hex エンコード & デコード ツール。100% ローカル処理 — データは端末の外に出ません。
結果がここに表示されます...
入力 → エンコード
Usage Guide
16進法(Hex)について
16進法(Hex)は、16文字(0-9、A-F)を使用してバイナリデータを表現するエンコーディング方法です。各16進文字は4ビットのバイナリ(0-15)を表し、各バイト(8ビット)は2つの16進文字で表現できます。16進エンコードされたデータは元のデータサイズの200%で、Base64より大きいですが、より読みやすくデバッグに適しています。16進法は色コード、MACアドレス、ハッシュ値、メモリアドレスなど様々なシナリオで広く使用されており、プログラマーが最も一般的に使用するエンコーディング方法の1つです。
使用手順
16進法のエンコードとデコードは非常にシンプルです:
エンコーディング原理
16進法エンコーディングは、以下のプロセスを通じてバイナリデータを16進文字に変換します:
0xFF (255)は “FF” にエンコード、バイト 0x41 (65、文字 'A')は “41” にエンコード。文字列 “Hello” は “48656C6C6F” にエンコード。16進法フォーマットの変種
16進法エンコーディングにはいくつかの一般的なフォーマット変種があります:
応用シナリオ
16進法は読みやすさとデバッグの利便性が必要なシナリオで広く使用されています:
FAQ
Q: 16進法とBase64の違いは何ですか?
A: 16進法と Base64 はどちらもバイナリデータのテキスト表現ですが、特性が異なります。16進法:1)16文字(0-9、A-F)を使用。2)エンコードサイズは元のデータの200%。3)より読みやすく、デバッグに適している。Base64:1)64文字(A-Z、a-z、0-9、+、/)を使用。2)エンコードサイズは元のデータの約133%。3)よりコンパクトで、転送に適している。選択のアドバイス:1)読みやすさとデバッグが必要:16進法を使用。2)コンパクトな転送が必要:Base64を使用。3)暗号化アルゴリズム出力:通常16進法を使用( SHA-256など)。
Q: ハッシュ値が通常16進法で表現されるのはなぜですか?
A: ハッシュアルゴリズム( SHA-256、 MD5など)はバイナリデータを出力し、通常16進法で表現されます。理由:1)読みやすさ:16進法はバイナリより読みやすく、手動比較が容易。2)固定長:SHA-256は32バイトを出力し、64文字の16進法で固定長表現。3)伝統的慣行:暗号化とハッシュフィールドは伝統的に16進法を使用。4)デバッグ対応:開発者はハッシュ値を簡単にコピー、ペースト、比較できます。例:SHA-256(“hello”) = 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824。
Q: 16進法の色コードとは何ですか?
A: 16進法の色コードは、RGB色を16進表記で表現し、#RRGGBB 形式でフォーマットされます。フォーマット:1)#RRGGBB:6桁の16進法、各2桁は色チャネル(赤、緑、青)を表現。2)#RGB:3桁の短縮形、各桁は1回繰り返される(例:#F00 = #FF0000)。例:1)#FF0000:純赤(R=255、G=0、B=0)。2)#00FF00:純緑(R=0、G=255、B=0)。3)#0000FF:純青(R=0、G=0、B=255)。4)#FFFFFF:白。5)#000000:黒。変換:16進法の色はRGB(例:rgb(255, 87, 51))またはHSL(例:hsl(14, 100%, 60%))に変換できます。
Q: MACアドレスが16進法で表現されるのはなぜですか?
A: MACアドレス(メディアアクセスコントロールアドレス)はネットワークデバイスの物理アドレスで、16進法で表現されます。フォーマット:6バイト(48ビット)、通常コロンまたはハイフンで区切られ、00:1A:2B:3C:4D:5E または 00-1A-2B-3C-4D-5E のような形式。理由:1)コンパクト:6バイトは12文字の16進法で表現、バイナリ(48ビット)または10進法(14桁の数字)よりコンパクト。2)読みやすさ:16進法はバイナリより読みやすく、手動識別と入力が容易。3)標準:IEEE 802標準はMACアドレスを表現するために16進法の使用を規定。例:00:1A:2B:3C:4D:5E はMACアドレス 0x001A2B3C4D5E を表現。
Q: JavaScriptで16進法を使用するにはどうしますか?
A: JavaScriptは16進法エンコーディングを処理するための複数の方法を提供します。文字列から16進法:const str = 'Hello';
const hex = Array.from(str).map(c => c.charCodeAt(0).toString(16).padStart(2, '0')).join('');
// 結果:'48656c6c6f'
16進法から文字列:const hex = '48656c6c6f';
const str = hex.match(/.{1,2}/g).map(byte => String.fromCharCode(parseInt(byte, 16))).join('');
// 結果:'Hello'
数値から16進法:const hex = (255).toString(16); // 'ff'
16進法から数値:const num = parseInt('ff', 16); // 255
Q: 16進エディタとは何ですか?
A: 16進エディタはバイナリファイルを表示・編集するツールで、ファイル内容を16進形式で表示します。機能:1)バイナリファイルを表示:ファイルの各バイトを16進形式で表示。2)バイナリファイルを編集:ファイル内のバイト値を直接変更。3)検索と置換:バイナリファイル内の特定のバイト列を検索。4)ファイル分析:ファイル構造を分析、ファイルヘッダを検出、ファイルタイプを識別。用途:1)リバースエンジニアリング:実行ファイル、ファームウェアを分析。2)データ復旧:破損したファイルを修復。3)ゲーム改造:ゲームセーブ、設定を変更。4)セキュリティ研究:マルウェアを分析。一般的なツール:HxD(Windows)、Hex Fiend(macOS)、xxd(Linuxコマンドライン)。
Use Cases
推奨:CSSカラーコード
16進法の色コードはCSSで最も一般的に使用される色表現で、#RRGGBB 形式でフォーマットされます。各2桁の16進法は色チャネル(赤、緑、青)を表し、値は00-FF(0-255)の範囲です。16進法の色コードは簡潔で読みやすく、Web開発の標準です。最新のCSSは8桁の16進法カラー(#RRGGBBAA)もサポートし、最後の2桁は透明度(アルファチャネル)を表します。
- ✅ 標準6桁16進法(#FF5733)
- ✅ 3桁短縮形(#F00 = #FF0000)
- ✅ 透明度付き8桁16進法(#FF573380)
- 💡 色選択ツールを使用して16進法カラーを生成
- 💡 CSSカラー変数を使用してカラーを管理することを検討
推奨:ハッシュ値表現
暗号化ハッシュアルゴリズム( SHA-256、 MD5など)は通常16進法形式で出力されます。16進法形式のハッシュ値は読みやすく、コピー、ペースト、比較が容易で、ファイル整合性検証、デジタル署名、パスワード保存などのシナリオの標準形式です。例えば、Gitはコミットを識別するためにSHA-1ハッシュ値(40桁の16進法)を使用し、ブロックチェーンはブロックを識別するためにSHA-256ハッシュ値(64桁の16進法)を使用します。
- ✅ ファイル整合性検証(SHA-256)
- ✅ GitコミットID(SHA-1)
- ✅ ブロックチェーンブロックハッシュ(SHA-256)
- ✅ パスワードハッシュ(bcrypt、Argon2)
- 💡 一貫性のため小文字16進法を使用
推奨:MACアドレスとネットワーク識別子
MACアドレス(物理アドレス)は6バイト(48ビット)の16進法表現を使用し、XX:XX:XX:XX:XX:XX または XX-XX-XX-XX-XX-XX 形式でフォーマットされます。MACアドレスはネットワークデバイスを一意に識別し、最初の3バイトはベンダー識別子(OUI)、最後の3バイトはデバイスシリアル番号です。同様に、IPv6アドレスも16進法表現を使用します(例:2001:0db8:85a3:0000:0000:8a2e:0370:7334)。
- ✅ MACアドレス(00:1A:2B:3C:4D:5E)
- ✅ IPv6アドレス(2001:db8::1)
- ✅ ネットワークデバイス識別子
- 💡 読みやすさのためコロンセパレータを使用
推奨:UUIDと一意識別子
UUID(汎用一意識別子)は16進法表現を使用し、xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 形式(32桁の16進法 + 4つのハイフン)でフォーマットされます。UUIDはグローバルに一意な識別子を生成し、データベース主キー、分散システム、ファイルシステムなど様々なシナリオで広く使用されます。UUIDは複数のバージョン(v1-v5)があり、v4(ランダム生成)が最も一般的です。
- ✅ データベース主キー
- ✅ 分散システムID
- ✅ ファイルシステム識別子
- ✅ APIリクエストID
- 💡 UUID v4(ランダム)またはv7(タイムスタンプ)を使用
推奨:バイナリファイル分析
16進エディタを使用してバイナリファイルを表示・編集することは、リバースエンジニアリング、データ復旧、セキュリティ研究で一般的な方法です。16進エディタはファイルの各バイトを16進形式で表示し、ファイル構造の分析、ファイルヘッダの検出、ファイルタイプの識別が容易になります。例えば、PNGファイルは 89 50 4E 47 (.PNG)で始まり、JPEGファイルは FF D8 FF で始まります。
- ✅ リバースエンジニアリング(実行ファイル分析)
- ✅ データ復旧(破損ファイル修復)
- ✅ ファイル形式分析
- ✅ セキュリティ研究(マルウェア分析)
- 💡 プロフェッショナルな16進エディタを使用(HxD、Hex Fiend)
推奨:メモリアドレスとデバッグ
プログラムデバッグ時、メモリアドレスは通常16進法で表現されます(例:0x7FFF5FBFF000)。16進法形式のメモリアドレスは読みやすく比較しやすく、デバッガ(GDB、LLDB、WinDbgなど)の標準形式です。開発者は16進法アドレスを使用してメモリ内容を表示、ブレークポイントを設定、プログラム動作を分析できます。
- ✅ デバッガ(GDB、LLDB、WinDbg)
- ✅ メモリダンプ分析
- ✅ ポインタとアドレス計算
- ✅ アセンブリ言語開発
- 💡 16進数を示すために0xプレフィックスを使用
ベストプラクティス推奨事項
- 16進法エンコードされたデータは元のデータサイズの200%で、大きなファイル転送には不適切です。代わりにBase64またはバイナリ転送を使用してください。
- ハッシュ値は通常一貫性のため小文字16進法を使用します(例:Git、ブロックチェーン)。
- CSSカラーコードはより一般的に大文字16進法(#FF5733)を使用しますが、小文字(#ff5733)も受け入れられます。
- MACアドレスはハイフン(00-1A-2B-3C-4D-5E)よりコロンセパレータ(00:1A:2B:3C:4D:5E)をより一般的に使用します。
- JavaScriptでは、toString(16)を使用して数値を16進法に変換し、parseInt(hex, 16)を使用して16進法を数値に変換します。
- 16進エディタはバイナリファイル分析の強力なツールですが、ファイル形式とバイト順序(ビッグエンディアン/リトルエンディアン)の理解が必要です。