AZ Tools

Base58 エンコーダー / デコーダー (Bitcoin, IPFS)

開発

Base58 は、視覚的に紛らわしい文字 0(数字ゼロ)、O(大文字オー)、I(大文字アイ)、l(小文字エル)と +、/ を除いたバイナリ→テキストのエンコーディングです — 結果がコンパクトで、手書きや URL への記載でも安全です。Bitcoin アドレスや WIF キー、IPFS CIDv0 ハッシュ、Solana キーで使われています。UTF-8 テキストや生の hex を貼り付けて Base58 にエンコード、または Base58 文字列を貼り付けてテキスト・hex にデコードできます。先頭のゼロバイトは Bitcoin の参照実装と同じく先頭の '1' 文字に対応し、バイナリデータがバイト単位で正確に往復します。Bitcoin/IPFS アルファベット(一般的)、Ripple の並べ替えアルファベット、Flickr の短縮 URL 用アルファベットから選べます。すべてローカルで動作し、アップロードされません。

出力

素の Base58(Base58Check ではない)。文字列はエンコード時と同じアルファベットでのみデコードできます。

使い方

  1. エンコードまたはデコードを選択。
  2. アルファベット(Bitcoin がデフォルトで最も一般的)と、データが UTF-8 テキストか hex バイトかを選択。
  3. 入力欄に入力・貼り付けて結果をコピー。

よくある質問

これは Base58Check ですか?
いいえ。素の Base58 です — Bitcoin アドレスや WIF キーで使う 4 バイトの二重 SHA-256 チェックサムの付加や検証は行いません。生の Base58 ペイロードに使ってください。Base58Check が必要なら、チェックサムを別途付加・検証する必要があります。
なぜ Base58 は一部の文字を除くのですか?
0、O、I、l は多くのフォントで混同しやすく、+ と / は URL セーフではないためアルファベットから除外しています。だから Base58 文字列は読み上げ・書き写し・URL への貼り付け(エスケープ不要)でも安全です。
アルファベットの違いは?
Bitcoin/IPFS は '123...ABC...abc' 順で最も一般的。Ripple は同じ 58 文字を並べ替え(同じバイトでも別の文字列)、Flickr は短縮 URL 向けに大文字小文字の順を入れ替えます。文字列はエンコード時のアルファベットでのみ正しくデコードできます。
先頭のゼロバイトはどう扱われますか?
各先頭 0x00 バイトは Bitcoin 参照実装と同じく先頭の '1'(最初のアルファベット文字)1 つになります。だから 0x00000000 入力は '1111' にエンコードされ、4 つのゼロバイトに戻ります — バイナリデータが正確に往復します。

関連ツール