Base58 エンコーダー / デコーダー

Bitcoin・Flickr・Ripple のアルファベットで Base58 をエンコード/デコード。テキストと 1 MiB までのファイルに対応し、ブラウザ内でローカルに処理します。

入力内容とファイルはブラウザ内に留まります

エンコードするテキストを入力するか、デコードする Base58 を貼り付けてください(下にファイルをドロップすることもできます)。

ここにファイルをドラッグ&ドロップ

ファイルを選択した場合、テキスト入力の代わりに使用されます。

デコードオプション

エンコードまたはデコードの結果がここに表示されます。

このページの内容

テキストや小さなファイルを Base58 にエンコードし、Bitcoin・Flickr・Ripple のアルファベットでデコードできます。変換は Rust からコンパイルした WebAssembly がブラウザ内で行うため、貼り付けた鍵や ID は端末の外に出ません。

詳細な機能

Base58 は 58 個の英数字を使い、紛らわしい 0・O・I・l と +・/ を除いているため、読みやすく、打ち直しやすく、ダブルクリックで一括選択できます。Bitcoin アドレス、IPFS CIDv0 ハッシュ、Solana の鍵などで使われています。アルファベットは Bitcoin(最も一般的)、Flickr(小文字が大文字より先。短縮 URL で使用)、Ripple(XRP Ledger)の 3 種類です。

Base64 と違い、Base58 は入力全体を 1 つの大きな数として扱います。パディングはなく、先頭のゼロバイトは Bitcoin アルファベットでは先頭の 1 になります。計算量は入力サイズの 2 乗で増えるため、エンコードは 1 MiB、デコードは 2,000,000 文字までに制限しています。より大きなファイルには Base64 か Hex を使ってください。

これは素の Base58 です。Bitcoin アドレスや WIF 鍵に含まれる 4 バイトの Base58Check チェックサムの付加や検証は行わないため、アドレスをデコードするとバージョンバイト・データ・チェックサムがまとめて得られます。選択した文字セットで有効なテキストにならないバイト列は ダウンロード で保存できます。

実用例

Bitcoin アルファベット: Hello World! は 2NEpo7TZRRrLZSi2U になり、この文字列をデコードすると Hello World! に戻ります。

その他のアルファベット: 同じテキストは Flickr では 2nePN7syqqRkyrH2t、Ripple では p4NFofTZRRiLZS5p7 になります。

不正な文字: 2NEpo0TZRRrLZSi2U(7 の代わりにゼロ)は拒否されます。0 はどの Base58 アルファベットにも含まれないためです。

Bitcoin アドレス: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa をデコードすると 25 バイトの生データ(バージョン、ハッシュ、チェックサム)になり、テキストではない旨が表示され、ダウンロード で保存できます。

このツールの使い方

  1. テキストを入力するかファイルを選ぶ

    入力 (テキスト) にテキストを入力または貼り付けるか、1 MiB までのファイルをページにドロップするか ファイルを選択 をクリックします。

  2. アルファベットを選ぶ

    アルファベット で Bitcoin (Base58)、Flickr、Ripple のいずれかを選びます。テキスト文字セット はテキストが UTF-8 以外の場合だけ変更します。

  3. エンコードまたはデコードする

    エンコード で Base58 を生成し、デコード でテキストやバイト列に戻します。エンコード時と同じアルファベットでデコードしてください。

  4. コピーまたはダウンロードする

    コピー で結果をクリップボードへ、ダウンロード でファイルに保存します。バイナリの結果はダウンロードのみ可能です。

ヒントとベストプラクティス

  • Base58 の出力は入力より約 37% 長く、Base64 より少し長くなりますが、紛らわしい文字がありません。
  • Bitcoin アルファベットの文字列の先頭にある 1 は先頭のゼロバイトを表します。削るとデコード結果が変わります。
  • アルファベットを間違えると別のバイト列かエラーになります。Ripple を選んだまま 2NEpo7TZRRrLZSi2U をデコードすると、Hello World! ではなく 13 バイトのバイナリになります。
  • 空白/改行を許可 がオンの間はスペースや改行を読み飛ばすので、複数行に分かれた鍵もそのまま貼り付けられます。
  • 1 MiB を超えるファイルには、線形時間で処理できる Base64 か Hex を使ってください。