🔢 Base32 / Base58 変換

テキスト(UTF-8)と Base16(16進)/Base32(RFC4648)/Base58(Bitcoin英数字)を相互変換します。エンコードとデコードを切り替え、Base58は「0・O・I・l」など見間違えやすい文字を除いた58文字だけを使うのが特徴です。すべての処理はブラウザ内で完結し、入力はどこにも送信しません。

入力

変換の向き
方式(Base)

変換結果

3つの方式のちがい

Base58 は「0(ゼロ)・O(大文字オー)・I(大文字アイ)・l(小文字エル)」を除いた58文字だけを使うため、手で書き写しても読み間違えにくいのが特長です。Base64 とは別物で、記号(+ / =)を含みません。

解説

このツールは、文字列(UTF-8テキスト)を Base16・Base32・Base58 という3つの表記法へ相互変換します。いずれも「バイト列を、限られた文字の並びで表す」仕組みです。まず入力テキストを UTF-8 のバイト列に変換し、そのバイト列を各方式のルールで文字に置き換えます。デコードはその逆で、コード文字列をバイト列に戻し、UTF-8テキストとして解釈します。日本語や絵文字も、UTF-8の複数バイトとして正しく往復します(例: 「Hello」→ Base58「9Ajdvzr」、16進「48656c6c6f」、Base32「JBSWY3DP」)。

Base16(16進 / hex)は 0-9 と a-f の16文字で、1バイトをちょうど2桁で表します。値とのずれがなく人が読みやすいため、ハッシュ値やバイナリのダンプ表示、色コードなどで広く使われます。Base32(RFC4648)は A-Z と 2-7 の32文字を使い、5バイトを8文字に詰めて、長さが足りないぶんは末尾を '=' で埋めます。大文字と数字だけで構成され、大文字小文字の区別がない環境や口頭・手入力でも扱いやすいのが利点です(本ツールのデコードは小文字入力も受け付けます)。

Base58 は Bitcoin で考案された表記で、英数字62文字から「0(ゼロ)・O(大文字オー)・I(大文字アイ)・l(小文字エル)」の紛らわしい4文字を除いた58文字を使います。記号(+ / =)を含まないため、二重クリックで選択しやすく、紙に書き写しても読み間違えにくいのが特長です。実装上のポイントは、Base58 は単純な5ビット・6ビット区切りではなく、バイト列全体を58進数へ基数変換する点です。本ツールは巨大な整数へ一度に変換するのではなく、桁上がりを伝播させるバイト単位の変換で行い、先頭の 0x00 バイトは1個につき先頭の「1」に対応させる(Bitcoin方式)ため、先行ゼロも失われず正しく復元できます。

よく混同される Base64 との違いは「使う文字」にあります。Base64 は + / = などの記号を含み、URLやファイル名でエスケープが必要になる場面がありますが、Base58 は記号を持たず英数字だけで完結します。用途の目安として、機械間でのバイナリ埋め込みや効率重視なら Base64、人が目視・手入力する識別子(ウォレットアドレス、短いID)なら Base58、単純なバイト確認や16進が前提のツール連携なら Base16 が向きます。なお本ツールはあくまで文字コードの相互変換であり、暗号化・ハッシュ化ではありません。可逆な符号化なので、秘密情報の保護目的には使わないでください。すべての変換はブラウザ内で完結し、入力内容はどこにも送信されません。

よくある質問

Base58 とは何ですか?

英数字から紛らわしい「0(ゼロ)・O(大文字オー)・I(大文字アイ)・l(小文字エル)」を除いた58文字でバイト列を表す方式です。ビットコインのアドレスなど、人が目で見たり書き写したりする識別子で使われます。

Base58 と Base64 は何が違いますか?

使う文字が違います。Base64 は + / = などの記号を含みますが、Base58 は記号を含まず英数字だけです。そのため Base58 は二重クリックで選択しやすく、手書きでも読み間違えにくい一方、変換効率(文字数)は Base64 のほうがわずかに良くなります。

日本語や絵文字も変換できますか?

はい。入力テキストをUTF-8のバイト列にしてから変換するため、日本語・絵文字も扱えます。デコードで元がUTF-8テキストなら、正しく日本語に戻ります。

デコードで「正しいUTF-8ではない」と出るのはなぜ?

そのコードが表すバイト列が、テキストではなくバイナリデータ(画像やハッシュなど)だった場合に出ます。バイト列自体の復元は成功していますが、文字として表示できないという意味です。テキストのエンコード結果を貼り付ければ正しく戻ります。

Base32 の末尾にある「=」は何ですか?

パディング(詰め物)です。Base32 は5バイトを8文字にまとめるため、端数のぶんを '=' で埋めて長さを8の倍数にそろえます。本ツールのデコードでは '=' があってもなくても受け付けます。

先頭が「1」で始まる Base58 は何を意味しますか?

Base58(Bitcoin方式)では、バイト列の先頭にある 0x00(ゼロバイト)1個を、先頭の「1」1文字で表します。これにより先行するゼロバイトが失われず、デコードで正確に復元できます。

これは暗号化ですか?秘密情報を隠せますか?

いいえ。Base16/32/58 は誰でも元に戻せる可逆な符号化で、暗号化ではありません。見た目が変わるだけで秘匿性はないため、パスワードや個人情報の保護には使わないでください。

入力した内容はサーバーに送られますか?

送られません。変換はすべてブラウザ内(JavaScript)で完結し、入力・結果はどこにも送信されません。オフラインでも利用できます。