コンテンツへスキップ
🛠️ToolsShed

Base58エンコーダー / デコーダー

テキストをBase58にエンコードしたり、Base58文字列をデコードします。ビットコインアドレスやIPFS CIDに使われます。

このツールについて

Base58は、生のデータを58個の英数字を使用してテキストに変換するバイナリ・テキスト・エンコーディング方式です。Base64とは異なり、URLやアドレスで混同されたり問題を引き起こす可能性のある記号を含まず、0(ゼロ)、O(大文字のO)、I(大文字のI)、l(小文字のl)などの文字を削除して視覚的な曖昧性を回避しています。このエンコーディングは、特にビットコインの暗号通貨アドレスをセキュリティ保護し、分散型ファイルシステムIPFSのコンテンツ識別子をエンコードするために広く認識されています。

このエンコーダを使用するには、テキストまたは生データを入力フィールドに貼り付け、エンコードボタンをクリックしてBase58文字列を生成します。デコードするには、有効なBase58エンコード文字列を貼り付けてデコードボタンをクリックして、元のデータを復号化するだけです。ツールはブラウザ内で完全に動作し、すべての変換を即座に処理し、外部サーバーには何も送信しません。これは、ブロックチェーンデータ、コンテンツアドレス指定システム、またはビットコインアドレス、IPFSハッシュ、または他の暗号化識別子を検証する必要のある任意のアプリケーションで作業する開発者に特に役立ちます。

Base58エンコーディングは、暗号通貨と分散型アプリケーションに特に価値があります。これは、アドレスを手動で紙の財布経由で共有する際の転記エラーを減らします。視覚的に類似した文字の削除により、Base58アドレスはBase64と比較して、目視での読み取り・検証が非常に容易になります。ブロックチェーン開発者、IPFSノードを管理するシステム管理者、またはビットコインアドレスの暗号化方法について単に好奇心を持つ人など、このツールはBase58エンコーディング・デコーディングを透明かつ親しみやすくしています。

よくある質問

コード実装

import base58  # pip install base58

# Encode text to Base58
text = "Hello, World!"
encoded = base58.b58encode(text.encode()).decode()
print(encoded)  # JxF12TrwUP45BMd

# Decode Base58 back to text
decoded = base58.b58decode(encoded).decode()
print(decoded)  # Hello, World!

# Manual implementation without library
ALPHABET = b"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"

def encode(data: bytes) -> str:
    num = int.from_bytes(data, "big")
    result = b""
    while num > 0:
        num, rem = divmod(num, 58)
        result = bytes([ALPHABET[rem]]) + result
    pad = len(data) - len(data.lstrip(b"\x00"))
    return (b"1" * pad + result).decode()

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.