使い方
- 形式が不明な文字列を入力欄に貼り付けます。
- すべてのデコーダーが実行され、文字列を正しくデコードできたエンコード方式が、可能性の高い順に一覧表示されます。
- 各候補について、デコードしたテキストまたはバイト列のプレビューと、判別されたファイルの種類を確認します。
- エンコード方式がわかったら「ツールを開く」から専用ページに移動し、データのデコード、変換、ダウンロードを行います。
判別の仕組み
どのエンコード方式にも、文字列が守るべき規則があります。判別ツールは、入力に対して各デコーダーを実行します。アルファベットにない文字、ありえない長さ、位置の誤ったパディングが見つかったデコーダーは候補から外れ、残りはデコード結果がどれだけ妥当に見えるかで順位付けされます。
- 文字セット。16進数は
0-9とa-fだけを使います。Base58 には0、O、I、lが含まれません。+や/があれば Base64、-や_があれば Base64URL の可能性が高くなります。 - 長さとパディング。16進数は桁数が偶数でなければなりません。Base64 は 4 文字単位、Base32 は 8 文字単位で処理され、
=のパディングは末尾にしか置けません。 - 読める出力かどうか。印字可能な文字からなる有効な UTF-8 にデコードできる候補は、ランダムに見えるバイト列になる候補よりも、正解である可能性がはるかに高くなります。
- ファイルシグネチャ。デコードしたバイト列が PNG、JPEG、PDF、ZIP、gzip のヘッダーなど既知のマジックナンバーで始まる場合は、ファイルの種類もあわせて表示します。
data: URI のプレフィックス、Adobe の <~ ~> 区切り記号、uuencode の begin 行といったラッパーも、対応するデコーダーが認識します。これらの処理はすべてブラウザ内で行われます。
結果が確定ではなく順位で示される理由
アルファベットは互いに大きく重なっています。文字列 48656c6c6f は Hello の16進数表記ですが、同じ 10 文字は Base64、Base36、Base58、Base62 としても有効で、それぞれ異なるバイト列になります。読めるテキストになるのは16進数として解釈した場合だけなので、16進数が 1 位になります。cafe のような短い単語はほぼすべてのアルファベットに当てはまり、文字列そのものからはどれを意図したのか判断できません。
入力が長いほど偶然の一致は起こりにくくなるため、結果は明確になります。どの候補もテキストや既知のファイル形式にデコードできない場合、データは暗号化または圧縮されているか、ハッシュ値である可能性があります。16進数で書かれた SHA-256 ハッシュ値は16進数としてはまったく正しいものですが、そのバイト列は設計上ランダムに見えるようになっています。
よく使われるエンコード方式を見分けるポイント
| エンコード方式 | 主な特徴 |
|---|---|
| 16進数 | 0-9 a-f のみで、長さは偶数。32 桁、40 桁、64 桁なら、MD5、SHA-1、SHA-256 のハッシュ値であることが多いです。 |
| Base64 | A-Z a-z 0-9 + / を使い、長さは 4 の倍数。末尾が = または == になることがあります。 |
| Base64URL | + と / の代わりに - と _ を使い、通常はパディングなし。ドットでつながれた 3 つの部分からなるものは JWT です。 |
| Base32 | 大文字の A-Z と 2-7 を使い、= でパディングして長さを 8 の倍数に揃えます。 |
| Base58 | 0 O I l を除く英字と数字。Bitcoin アドレスや、Qm で始まる IPFS ハッシュなどに使われます。 |
| Ascii85、Base85 | 英字、数字、記号がぎっしりと混在しています。Ascii85 は <~ ~> で囲まれていることがあります。 |
よくある質問
文字列が Base64 かどうかはどうすればわかりますか?
複数のエンコード方式が表示されるのはなぜですか?
多くの文字列、特に短い文字列は、複数のアルファベットで同時に有効になります。判別ツールは、入力をエラーなくデコードできるエンコード方式をすべて表示し、読めるテキストかどうかやファイルシグネチャをもとに、最も可能性の高いものを先頭に置きます。
どの結果も読めるテキストになりません。これはどういう意味ですか?
このツールで文字列を復号したり、ハッシュ値を元に戻したりできますか?
いいえ。Base64 などのエンコード方式は鍵を使わず、もともと元に戻せるように設計されているため、判別やデコードが可能です。暗号化されたデータは鍵がなければ読めず、ハッシュ値を元の入力に戻すこともできません。
貼り付けた文字列はサーバーに送信されますか?
いいえ。すべてのデコーダーはブラウザ内でローカルに実行されるため、トークン、鍵、ログデータがお使いのデバイスの外に出ることはありません。