コンテンツへスキップ
uencoder

Base32・Base58・Base64・Base85・Base91 間でデータを変換する

同じバイナリデータを、システムごとに異なる Base 系エンコード(Bitcoin、DNS、PDF、コンパクトなシリアライズ)の間で変換します。

  1. 1

    コミュニティごとに使う基数エンコーディングは異なります。DNS/TOTP には Base32、Bitcoin アドレスには Base58、MIME/JSON には Base64、IPv6/PDF には Base85、コンパクトなバイナリには Base91 です。いずれも同じバイト列を表しており、変換は「バイトにデコードして再エンコードする」手順で行います。

  2. 2
    基数変換ツール →

    値を入力し、変換元の基数と変換先の基数を選択します。ツールが生バイトへのデコードと再エンコードを一度に行います。

  3. 3
    Base58 エンコーダー →

    Bitcoin 形式のアドレスには、紛らわしい文字(0、O、I、l)を除いた Base58 を使います。これにより書き写しミスを防げます。

  4. 4
    Base32 エンコーダー →

    DNS ラベルや TOTP シークレットには、大文字小文字を区別せず A-Z と 2-7 のみを使う Base32 を使います。

  5. 5

    必ずラウンドトリップを検証してください。変換結果をデコードして元のバイト列と一致することを確認します。Base58 と Base91 にはパディングがないため、長さの不一致が最も多い無音エラーです。

よくある質問

最もコンパクトな基数エンコーディングはどれですか?
基数が大きいほどコンパクトです。Base91 は約 1.23 文字/バイト、Base85 は約 1.25、Base64 は約 1.33、Base58 は約 1.37、Base32 は約 1.6 です。サイズだけでなく、対象システムのアルファベット対応状況に基づいて選んでください。
なぜ Base58 は有効な Base64 出力を拒否するのですか?
Base58 のアルファベットは制限されています(0、O、I、l、+、/ を含まない)。Base64 文字列にこれらの文字が含まれている場合、テキストを直接解釈し直すことはできず、一度バイトにデコードしてから Base58 エンコードする必要があります。

このタスクを解決するワークフロー

関連ツール