Base58 エンコードとデコード
通常のテキストは、まず UTF-8 に従ってバイトに変換され、次に Base58 または Base58Check にエンコードされます。
ブラウザで Base58 および Base58Check のエンコードとデコードを完了し、テキスト、ファイル、外字テーブル、および 16 進数の結果の表示をサポートします。
関連おすすめ
Base58 および Base58Check とは何ですか?
Base58 は、人間が読んだりコピーアンドペーストしたりすることを目的としたテキスト エンコーディングです。 0、O、I、l などの読み間違えやすい文字を削除するため、短いロゴ、招待コード、ウォレット アドレス、オフライン共有コードなどのシナリオでよく使用されます。
標準の Bitcoin Base58 文字テーブルは `123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz` です。このページは、Flickr バージョンのアルファベットと独自に定義した 58 文字のアルファベットの両方をサポートしています。
Base58Check は、元のバイトの後に 4 バイトのチェックサムを追加し、それを全体として Base58 にエンコードするソリューションです。これは、古いビットコイン アドレス、WIF 秘密キーのエクスポート、招待コード、または手動で転記する必要がある文字列によく使用されます。目標は、タイプミス、単語の欠落、または順序の乱れをより早期に検出することです。
バイナリ ペイロード、アドレス ペイロード、またはハッシュ フラグメントを取得した場合、デコードされたコンテンツは必ずしも読み取り可能なテキストであるとは限りません。このとき、文字化けをデコード失敗と誤判断するよりは、16進数に切り替えて表示する方が適切です。
IPFS CIDv0 は、Base58Check の代わりに標準の Base58btc を使用します。 `bc1...` このタイプのビットコイン アドレスは Bech32 に属し、このページ Base58 の範囲には含まれません。
ユースケース
- 古いビットコイン アドレス、WIF 秘密キー エクスポート文字列、またはカスタム Base58Check 共有コードが正しく入力されていないか確認してください。
- 小さなファイル、バイナリ フラグメント、またはテスト ペイロードを Base58 にエンコードして、ログ、チャット、またはチケットで簡単に配信できます。
- Base58 文字列を 16 進数にデコードし、バージョン バイト、ハッシュ、または生のペイロードを分析します。
- Bitcoin Base58 と Flickr Base58 の出力を比較して、同じバイトのセットが異なるシステムで異なる結果になる理由を調べてください。
- 内部招待コード、短いロゴ、またはオフライン トークン用に独自の 58 文字の文字テーブルを設計し、両端が一貫していることを確認します。
使い方
- エンコードまたはデコード モードを選択します。人間が入力したエラーが発生しやすい文字列を処理する必要がある場合は、Base58Check オプションをオンにしてください。
- Bitcoin、Flickr、またはカスタム文字テーブルを選択します。プライベート プロトコルの場合は、まず、双方が同じ 58 文字シーケンスのセットを使用していることを確認します。
- エンコード時にテキストを入力するか、ファイルをアップロードします。デコード時に Base58 文字列を貼り付け、必要に応じて 16 進数の結果に切り替えて生のバイトを確認します。
- 出力を表示した後、直接コピーまたはダウンロードします。 Base58Check の場合、ページは検証に合格したかどうかを同期的に尋ねます。
特徴
- 標準 Base58 および Base58Check デュアル モード: 通常のエンコードを直接実行することも、4 バイトのチェックサムを自動的に追加または検証することもできます。
- テキストとファイルの両方をエンコードできます。通常のテキストは UTF-8 に従って処理され、ファイルは生のバイトに従ってエンコードされます。これは、バイナリ コンテンツのオフライン配信に適しています。
- デコード結果はテキストまたは 16 進数の間で切り替えることができます。アドレス ペイロード、ハッシュ フラグメント、または UTF-8 以外のデータに遭遇したときに意味不明な内容に陥る必要はありません。
- Bitcoin、Flickr、およびカスタム 58 文字文字テーブルをサポート: 既存のシステムとの互換性またはプライベート ショート コード ソリューションのデバッグに適しています。
- ブラウザのローカル処理と結果のダウンロード: エンコード、デコード、検証はすべてローカルで完了し、出力を直接コピーまたはダウンロードできます。
Base58、Base58Check、Base64 を選択するにはどうすればよいですか?
どちらもバイトを許容可能なテキストに変換できますが、焦点は完全に異なります。重要なのは、「どちらがより高度であるか」ではなく、手動転記とエラー防止を重視するか、コンパクトさと汎用互換性を重視するかです。
| 計画 | より適切な | 利点 | 注記 |
|---|---|---|---|
| Base64 エンコードBase64 URL 安全 | |||
| Base32 エンコード |
Best Practices
手動で転記またはカスタマーサービスによって中継される場合は、Base58Check が優先されます。
文字列が口述されたり、スクリーンショットを撮られたり、チャットに転送されたり、手動で再入力されたりする限り、チェックサムはほとんどの場合、開く価値があります。すべてのエラーを防ぐことはできませんが、「正しいように見えて、実際には文字が欠落している」という状況は大幅に減少します。
デコード結果がテキストでない場合は、まず 16 進数を確認します。
アドレス ペイロード、ハッシュ、イメージ ヘッダー、圧縮フラグメントなどのコンテンツは、UTF-8 であることが保証されません。まず 16 進数に切り替えて元のバイトを確認し、次にファイルを変換するか、ハッシュ化を続行するか、または他のツールに渡して処理するかを決定します。
六角工具Base58 を大きなファイルの長期保存形式として使用しないでください
Base58 は、短い文字列と小規模から中程度のペイロードに適しています。ファイルが大きくなると出力も長くなり、コピーの利便性が低下し、リッチ テキスト、チャット ツール、またはログで切り捨てられる可能性が高くなります。
文字テーブルをカスタマイズする場合は、すべての実稼働端末と同期する必要があります。
1 つのサーバー、スクリプト、またはクライアントが異なる順序を使用している限り、エンコードとデコードの結果はすべてずれてしまいます。まず 58 文字のシーケンスを修正してから、それをプロトコルまたはテスト サンプルに書き込みます。
より短く、より一般的なインターフェイス送信が必要な場合は、比較 Base64URL を優先します。
Base58 の利点は、読みやすく混乱を防ぐことですが、最小サイズではありません。文字列が主にプログラム間で渡され、人間によって転写されない場合は、Base64URL の方が一般的によりコンパクトで一般的です。
Base64 URL 安全よくある質問
Base58 と Base64 のどちらを選択すればよいですか?
文字列を読み取ったり、コピーしたり、他の人に入力したりする場合は、Base58 が推奨されます。主にプログラム、インターフェイス、JSON または URL パラメータで送信される場合、通常は Base64 または Base64URL の方がコンパクトです。 Base58 の焦点は、最短の出力ではなく、可読性と難読化対策です。
Base58Check それはどのような問題を解決しますか?
元のペイロードに 4 バイトのチェックサムを追加し、ペイロード全体を Base58 でエンコードします。このようにして、ユーザーが単語を見逃したり、タイプミスをしたり、間違った順序で書いたりした場合、ツールは意味のない一連の結果を静かに取得するのではなく、時間内にエラーをより簡単に報告します。
このページでビットコインアドレスを検証できますか?
Base58Check レイヤーが正しいことを検証できるため、古いバージョンの Base58 アドレスまたは WIF エクスポート文字列に明らかな入力エラーがあるかどうかを確認するのに適しています。ただし、アドレスの使用法、ネットワーク タイプ、およびスクリプト タイプをさらに決定することはなく、`bc1...` などの Bech32 アドレスもサポートしません。
デコード後のコードが文字化けする、またはプロンプトが UTF-8 ではないのはなぜですか?
Base58 は生のバイトをデコードするため、必ずしも読み取り可能なテキストではありません。これは、アドレス ペイロード、ハッシュ、イメージ ヘッダー、または任意のバイナリ データで発生する可能性があります。 16 進数に切り替えると生のバイトが表示され、通常は分析を続行できます。
ファイル Base58 のエンコードとデコードはサポートされていますか?
サポートします。エンコード中にファイルをアップロードすると、ページは元のバイトに従って Base58 に変換されます。デコード後に元の結果をダウンロードして戻すこともできます。ファイルが大きくなるほど出力文字列も長くなるため、小規模から中規模のワークロードやデバッグ シナリオに適しています。
どのような文字テーブルがサポートされていますか?
現在、標準 Bitcoin Base58、Flickr Base58、およびカスタマイズされた 58 文字の文字テーブルをサポートしています。エンコード側とデコード側がまったく同じ文字列を使用している限り、相互に通信できます。
IPFS CID またはその他のオンチェーン文字列を処理できますか?
CIDv0 このような標準の Base58btc 文字列は、直接エンコードまたはデコードできます。ただし、ページはマルチベース、マルチコーデック、または具体的なオンチェーン セマンティクスの解析を続行しません。 `bc1...` のような Bech32 文字列は、Base58 の範囲には含まれません。
アップロードされたコンテンツはサーバーに送信されますか?
いいえ。テキスト、ファイル、Base58Check チェックサム結果はすべてブラウザーでローカルに処理されます。これは、機密性の高い負荷、オフライン テスト データ、またはアップロードが不便なファイル フラグメントのデバッグに適しています。
トラブルシューティング
ヒントに不正な Base58 文字が含まれています
現在の文字テーブルでは、0、O、I、l などの除外文字は受け入れられません。間違った Bitcoin / Flickr / 外字テーブルを切り取った可能性もあります。まず文字列のソースを確認し、文字テーブルが相手と一致しているかどうかを確認します。
Base58Check 検証に失敗しました
これは通常、文字列がアンダーコピーされたか、文字が間違って書き込まれたか、Base58Check 自体ではないことを意味します。まず本当に Base58Check を開く必要があるかどうかを確認し、次に戻って元のコンテンツが完全であるかどうかを確認します。
外字テーブルは保存できません
外字テーブルの長さは正確に 58 文字である必要があり、各文字は 1 回だけ出現する必要があります。文字の欠落や文字の重複を避けるために、最初に標準の Bitcoin 文字テーブルを変更することをお勧めします。
デコード結果はテキストではありません
これは必ずしもバグではありません。多くの Base58 文字列は、もともとバイナリ ペイロードを運びます。 16 進数に切り替えて表示するか、デコード結果をファイルとしてダウンロードして、次のステップを決定します。
用語集
- Base58
- 0、O、I、l などの混同されやすい文字を削除する 58 ビットのテキスト エンコーディング。手動入力やコピーの共有に適しています。
- Base58Check
- 4 バイトのチェックサムが元のペイロードの後に追加され、Base58 エンコード全体が使用されて、入力エラーを早期に検出します。
- ペイロード
- エンコードの前に、Base58 または Base58Check の生のバイト コンテンツを実行します。これは、テキスト、ファイル バイト、アドレス ペイロード、または任意のバイナリ データです。
- チェックサム
- 短いフィンガープリントにより、迅速なエラーチェックが可能です。 Base58Check はペイロードの SHA-256 を 2 倍にし、最初の 4 バイトをチェックサムとして取得します。
- Bitcoin Base58 文字テーブル
- 最も一般的な Base58 文字テーブル: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz。
- Flickr Base58
- Flickr は、Base58 で使用される別の並べ替えセットであり、ケースの順序が Bitcoin バージョンとは異なるため、同じバイトでも異なる出力が得られます。
現在のページでサポートされている文字テーブル
同じバイトのセットでも、文字テーブルの順序が異なる限り、最終的な Base58 出力は異なります。
| キャラクターテーブル | 一般的な用途 | 説明 |
|---|---|---|
いつ 16 進表示に切り替える必要がありますか?
Base58 デコードされた結果をテキストに直接読み込めるとは限りません。
| 遭遇したコンテンツ | より良い視聴方法 | 理由 |
|---|---|---|
Authoritative References
- Bitcoin WikiBitcoin Wiki - Base58Check エンコーディング
- Wikipediaウィキペディア - Base58
- GitHubIPFS CID 仕様
- GitHubBitcoin BIP-0173 Bech32
- 安全文字列比較
- 二進数変換
- シーザー暗号
- モールス信号
- 16進数変換
- 動画→Base64変換
- Base64 を動画に変換
- 画像をBase64に変換
- Base64を画像に変換
- テキスト→Base64変換
- Base64→テキスト変換
- ファイルハッシュ検証
- File to Base64
- Base64→ファイル変換
- 音声→Base64
- Base64を音声に変換
- AES暗号化・復号化
- DES暗号化/復号
- Base32 エンコーダー デコーダー
- Base58 エンコードとデコード
- Base64 エンコード
- Base64 デコード
- Base64比較
- Base64 分割
- Base64複数行マージ
- Base64フォーマット
- Base64形式チェック
- Base64一括エンコード
- Base64一括デコード
- Base64クリーナー
- Base64 パディング処理
- Base64長さ統計
- Base64→16進数変換
- Base64 DataURL 変換
- Base64-Hex双方向変換
- Base85エンコーダー/デコーダー
- HMAC生成と検証
- PBKDF2鍵導出
- MD5 ハッシュ値
- SHA-256 ハッシュ
- SHA1 ハッシュ
- SHA512ハッシュ
- JWT デコーダー
- HTMLエンティティエンコード/デコード
- Unicodeエスケープ
- URL エンコード
- URL Safe Base64変換
- MIME Base64
- Java難読化
- JS難読化
- PHP難読化
- Python難読化