Base58 エンコーダー
テキストや 16 進バイトを Bitcoin のアルファベットで Base58 にエンコードします。先頭のゼロバイトは 1 になり、紛らわしい 0/O/I/l は使いません。無料・ブラウザー内。
12 文字 · 12 バイト(UTF-8)
0 文字 · 0 バイト(UTF-8)
すべてブラウザ内で実行されます。データがアップロードされることはありません。
Base58 エンコードとは?
Bitcoin のアルファベット(123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz)で、データを Base58 にエンコードします。Base58 は 0、O、I、l を除いているため、値を紛らわしさなく読んだり入力したりでき、Bitcoin のアドレス、IPFS の CID、Solana のキーに使われています。
Base58 エンコードの使い方
- 入力 にテキストを入力するか、ハッシュやキーなどの生のバイト列をエンコードするには 入力形式 を 16進バイト列 に切り替えます。
- Base58 の文字列が 出力 に表示されます。
- コピー または 入力に使う で、もう一度デコードできます。
例
Hello World!
2NEpo7TZRRrLZSi2U
Base58 エンコードを使うべき場面
人が手でコピーするかもしれない短い識別子に Base58 を使います。大きなデータには向きません。変換は計算量が 2 乗で、ストリーミングの形式もありません。Bitcoin のアドレスには Base58Check も必要ですが、このツールは追加しません。
Base58 エンコードの仕組み
バイト列は 1 つの大きなビッグエンディアンの数として扱われ、58 で繰り返し割られます。余りを逆順に読んで、アルファベットの文字を選びます。数には先頭のゼロがないため、先頭の 0x00 バイトはすべて先頭の 1 として書かれます。これは素の Base58 で、チェックサムは追加されません(Base58Check は 4 バイトの二重 SHA-256 チェックサムを追加しますが、このツールは計算しません)。
一般的な使用例
- 公開鍵のハッシュやハッシュダイジェストを表示用にエンコードする
- 人に優しいコンパクトな ID を作る
- 別のライブラリの Base58 出力を確認する
- アドレスが「1」で始まる理由を理解する
よくある質問
ゼロのバイトが「1」になるのはなぜですか?
「1」は Base58 でのゼロの桁です。先頭のゼロバイトはそれぞれ 1 つの「1」として残されるので、正確なバイト長を復元できます。
これで Bitcoin のアドレスが作れますか?
いいえ。アドレスにはバージョンバイト、ハッシュ、Base58Check のチェックサムが必要です。このツールは Base58 の手順だけを行います。
どのアルファベットが使われますか?
Bitcoin のアルファベットです。Ripple や Flickr は並び順が異なり、対応していません。