Base58 エンコーダーとデコーダー
Bitcoin アルファベットを使い、テキストや HEX バイトから Base58 をエンコード・デコードできます。すべてブラウザ内で動作し、入力は端末上に留まります。
Base58 エンコーダー/デコーダーは完全にブラウザ内で動作します。エンコードまたはデコードするテキストと HEX バイトは端末から外に出ることはなく、ArrayKit に何もアップロードされません。
Base64 エンコーダー/デコーダーを開く
Base58 エンコーダー/デコーダー について
Base58 エンコーダー/デコーダーは、Bitcoin アルファベット — 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz — を使ってデータを Base58 に相互変換します。このアルファベットは見分けにくい 0・O・I・l を除いているので、エンコードした文字列は読みやすく、打ち直しも容易です。UTF-8 テキストや生の HEX バイトを渡すとコンパクトな Base58 文字列を生成し、Decode に切り替えれば Base58 文字列をテキストや HEX に戻せます。先頭のゼロバイトは先頭の '1' 文字として保持され、これはまさに Bitcoin アドレスや WIF キーが作られる方法です。ライブラリを持ち込まずに、キー・ハッシュ・短い識別子・IPFS 風の値を調べるときに便利です。すべて端末上で動作し、貼り付けたバイトがブラウザから外に出ることはありません。
機能
- UTF-8 テキストや生の HEX バイトを Base58 文字列にエンコード
- トグル 1 つで Base58 文字列をテキストや HEX に戻す
- 曖昧な 0・O・I・l を除く Bitcoin アルファベットを使用
- 先頭のゼロバイトを先頭の '1' 文字として保持
- 0x プレフィックスの有無やはぐれた空白を含む HEX 入力を受け付ける
- 文字が Base58 アルファベットにないとき明確なインラインエラーを表示
- 多倍長整数変換で、任意の長さの入力を処理
- すべてブラウザ内で動作し、何もアップロードされない
Base58 エンコーダー/デコーダー の使い方
- Encode タブを選択したまま、入力に Text か Hex を選ぶ
- テキストを入力するか HEX バイトを貼り付けて Base58 文字列を得る
- 右ペインから Base58 出力をコピーする
- Decode に切り替え、Text か Hex の出力を選び、Base58 文字列を貼り付ける
例
入力
hello
出力
Cn8eVZg
"hello" の UTF-8 バイトの Base58 は Cn8eVZg です。
よくあるエラーとトラブルシューティング
- デコードが無効な Base58 文字を報告する。 — Base58 は 0(ゼロ)・O(大文字オー)・I(大文字アイ)・l(小文字エル)を除きます。これらの見た目の似た文字を確認し、デコード前にスペースや句読点を取り除いてください。
- エンコード時に HEX 入力が拒否される。 — HEX は偶数桁で、0-9 / a-f だけでなければなりません。奇数の末尾ニブルや非 HEX 文字を取り除いてください。先頭の 0x は問題なく、自動で取り除かれます。
- 往復した後で先頭のゼロバイトが消えたように見える。 — 消えていません — 各先頭ゼロバイトは先頭の '1' になります。Hex にデコードし直すと、00 バイトが先頭に再び現れます。
- デコードしたテキストに置換文字が表示される。 — そのバイトは有効な UTF-8 テキストではありません。出力トグルを Hex に切り替えて、テキストとして描画しようとせず生のバイトを見てください。
よくある質問
- この Base58 ツールはどのアルファベットを使いますか?
- Bitcoin アルファベットを使います:123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz。見た目の似た文字を避けるため 0・O・I・l を除いています。Bitcoin アドレスや WIF キーが使うのと同じアルファベットです。
- Base58 で先頭のゼロバイトはどう扱われますか?
- 入力の各先頭ゼロバイトは先頭の '1' 文字としてエンコードされ、各先頭の '1' はゼロバイトに戻ってデコードされます。だからこそ 0x00 バージョンバイトで始まる Bitcoin アドレスは 1 で始まります。
- テキストではなく生の HEX バイトをエンコードできますか?
- はい。入力トグルを Hex に設定し、00287fb4cd のようなバイトを 0x プレフィックスの有無にかかわらず貼り付けてください。Decode 側では Hex 出力を選べば、テキストではなく生のバイトを取り戻せます。
- Base58 は Base64 とどう違いますか?
- Base58 は 58 個の記号を使い、+・/・= と曖昧な 0・O・I・l を除くので、短く、手で読んだり打ち直したりするのが安全です。Base64 は 64 個の記号を使い、より高密度ですが、URL でエスケープが必要になったり読み違えられたりする文字を含みます。
- このツールはチェックサム付きの Base58Check を計算しますか?
- いいえ。渡した正確なバイトのプレーンな Base58 エンコード・デコードを行います。Bitcoin アドレスが使う 4 バイトの Base58Check チェックサムの追加や検証は行わないので、それが必要な場合はハッシュツールと組み合わせてください。
- 貼り付けたバイトはサーバーに送られますか?
- いいえ。Base58 エンコーダー/デコーダーは完全にブラウザ内で動作します。入力したり貼り付けたりしたテキストと HEX は端末上に留まり、ArrayKit にアップロードされることはありません。
関連ツール
すべての ArrayKit ツール