Yueseryueser.com

← ガイド一覧

16進数エンコードのガイド:バイトを見るための表記

この文字列が実際に何を保存しているのかを知りたいとき、16進数は最も直接的な見方です。ただし表記方法の一つであり、保護ではありません。

ツールを開く:16進数エンコーダー

バイト列に開くべきとき

同じ文が環境によって違って見える、API が文字を拒否する、設定値の末尾に見えない空白がある。どれも「見えている文字」と「保存されているバイト」が違うことが原因です。16進数にすると、空白は 20、改行は 0a、タブは 09 としてすぐに見分けられます。

プロトコル仕様との照合にも向きます。ヘッダが2バイト、フラグが1バイトといった定義は珍しくなく、文字列をバイト列にして1バイトずつ比べるほうが、原文を眺めるより確実です。

結果を読むときの3つの注意

1つ目、文字コードは UTF-8 です。英字は1バイト、常用の漢字は通常3バイト、絵文字は多くが4バイトになります。漢字が e4 b8 ad になるのは不具合ではなく、UTF-8 の定義どおりです。

2つ目、各バイトは必ず2桁です。間の空白は区切りで、データではありません。3つ目、0x は書き方の習慣で、貼り付けても省略しても構いませんが、内容として扱わないでください。大文字と小文字は同じ値です。

暗号ではなく、保存形式でもない

16進数に鍵はありません。誰でも1手で戻せるため、パスワードや API の URL を隠す用途には使えません。変わるのは可読性だけで、サイズは2倍になり、情報は減りません。機密性が必要なら暗号化、短くしたいなら Base64 です。

このツールはテキスト専用です。画像や圧縮ファイル、実行ファイルは xxd や hexdump を使ってください。オフセットも表示されるので、目的のバイトを探しやすくなります。大きなファイルをブラウザに貼ると、役に立つ前にタブが固まります。

よくある質問

なぜ漢字は e4 b8 ad になるのですか

U+4E2D が UTF-8 の3バイト領域にあるためです。GBK では同じ文字が2バイトになります。16進数同士を比べるときは、先に双方の文字コードを確認してください。

Base64 との違いは何ですか

どちらも可逆です。16進数は1バイトを2文字で書くので2倍、Base64 は64種類の文字で約1.33倍になります。読みやすさは16進数、小ささは Base64 が有利です。

16進数を暗号として使えますか

使えません。鍵も強度もなく、誰でも即座に戻せます。暗号の代わりに使うのは、パスワードを付箋の裏に書くのと同じです。機密には暗号化と鍵の管理が必要です。

関連ツール:16進数エンコーダー