エンコード判別ツール

文字列が Base64 なのか、16進数や Base58、あるいは別の形式なのかわからないときは、ここに貼り付けてください。すべてのデコーダーを試して正しくデコードできた結果を順位付けし、デコード後のデータをプレビューします。

すべてブラウザ内で処理され、データはアップロードされません。

使い方

  1. 形式が不明な文字列を入力欄に貼り付けます。
  2. すべてのデコーダーが実行され、文字列を正しくデコードできたエンコード方式が、可能性の高い順に一覧表示されます。
  3. 各候補について、デコードしたテキストまたはバイト列のプレビューと、判別されたファイルの種類を確認します。
  4. エンコード方式がわかったら「ツールを開く」から専用ページに移動し、データのデコード、変換、ダウンロードを行います。

判別の仕組み

どのエンコード方式にも、文字列が守るべき規則があります。判別ツールは、入力に対して各デコーダーを実行します。アルファベットにない文字、ありえない長さ、位置の誤ったパディングが見つかったデコーダーは候補から外れ、残りはデコード結果がどれだけ妥当に見えるかで順位付けされます。

  • 文字セット。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 のハッシュ値であることが多いです。
Base64A-Z a-z 0-9 + / を使い、長さは 4 の倍数。末尾が = または == になることがあります。
Base64URL+ と / の代わりに - と _ を使い、通常はパディングなし。ドットでつながれた 3 つの部分からなるものは JWT です。
Base32大文字の A-Z と 2-7 を使い、= でパディングして長さを 8 の倍数に揃えます。
Base580 O I l を除く英字と数字。Bitcoin アドレスや、Qm で始まる IPFS ハッシュなどに使われます。
Ascii85、Base85英字、数字、記号がぎっしりと混在しています。Ascii85 は <~ ~> で囲まれていることがあります。

よくある質問

文字列が Base64 かどうかはどうすればわかりますか?
A-Z、a-z、0-9、+、/ の文字だけで構成されているか、長さが 4 の倍数か、末尾の = が 2 つ以下かを確認します。ここに貼り付ければ、読めるテキストや既知のファイル形式にデコードできるかがわかります。エラーの位置まで正確に示す厳密なチェックには、Base64 検証ツールを使ってください。
複数のエンコード方式が表示されるのはなぜですか?

多くの文字列、特に短い文字列は、複数のアルファベットで同時に有効になります。判別ツールは、入力をエラーなくデコードできるエンコード方式をすべて表示し、読めるテキストかどうかやファイルシグネチャをもとに、最も可能性の高いものを先頭に置きます。

どの結果も読めるテキストになりません。これはどういう意味ですか?
画像や圧縮ファイルのようなバイナリデータの可能性があり、その場合は判別されたファイルの種類が手がかりになります。また、暗号化されたデータ、ハッシュ値、あるいは標準以外のアルファベットで書かれたバイト列の可能性もあります。最後のケースでは、カスタムアルファベットツールを試してください。
このツールで文字列を復号したり、ハッシュ値を元に戻したりできますか?

いいえ。Base64 などのエンコード方式は鍵を使わず、もともと元に戻せるように設計されているため、判別やデコードが可能です。暗号化されたデータは鍵がなければ読めず、ハッシュ値を元の入力に戻すこともできません。

貼り付けた文字列はサーバーに送信されますか?

いいえ。すべてのデコーダーはブラウザ内でローカルに実行されるため、トークン、鍵、ログデータがお使いのデバイスの外に出ることはありません。