「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

Base58(ベース58)

pointこの用語のポイント

pointデータの変換方式だよ

pointBase64の親戚だよ

pointデータを58文字の文字で表現するよ

pointBase64で使う文字(a~z、A~Z、0~9、+、/、=)から「0」「O」「l」「I」「+」「/」「=」を除いたよ

スポンサーリンク

簡単に書くよ

Base58(ベース58)(読:ベース58)とは

Base64(すべてのデータを「a~z」「A~Z」「0~9」「+」「/」の64文字と「=」の組み合わせに変換するやり方)の、64文字から58文字になった版。
もう少し具体的に書くと

データを他の形式へ変換するやり方(エンコード方式)のひとつ
であり

すべてのデータを「abcdefghijkmnopqrstuvwxyz(lがないよ)」「ABCDEFGHJKLMNPQRSTUVWXYZ(IとOがないよ)」「123456789(0がないよ)」の58文字の組み合わせに変換するやり方
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として「エンコード」と「Base64」について説明します。
特にBase64については結構ガッツリ説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

エンコードは「データを他の形式へ変換すること」です。

Base58

Base64は「エンコード方式のひとつ」です。
メール添付ファイル(メールにくっつけて送るファイルの話で よく登場します。
「エンコード方式」という表現が難しかったら「データの変換ルール」と読み替えてください。

Base582

みなさんもメールに添付ファイルをくっつけて送ったことがあると思います。
添付ファイルとしてくっつけられるファイルは文字データとは限りません。
画像ファイルでも、動画ファイルでも、圧縮ファイルでも、くっつけて送れます。

とはいえ、実際にはメールで送れるのは文字だけです。
ファイルは(そのままでは)送れません。

それでは、どうやってファイルを送っているのでしょうか。

実はファイルを「文字の集まり」に変換して送っているのです。

Base583

例えば、そうですね。

ピヨ太君が自画像をピヨ子さんに送ろうとしたとしましょう。

Base584

ピヨ太君はメールに自画像をくっつけます。

Base585

メールにくっついた自画像は特定のルールに従って文字の集まりに変換されます。

Base586

ピヨ子さんに送られるメールの中身は文字だけです。

Base587

ピヨ子さんの元に到着したメールは、特定のルールに従って逆変換されます。
文字の集まりがピヨ太君の自画像に戻ります。

Base588

文字だけしか送れないメールでピヨ太君の自画像(ファイル)が送れましたね。

Base589

これが添付ファイルの仕組みです。

さて、この仕組みにおいて、特定のルールに従って

・ファイル→文字の集まり
・文字の集まり→ファイル


と変換しました。

この変換で使う「特定のルール」のひとつがBase64です。

Base5810

さて、メールの添付ファイルの例を挙げたときに

実はファイルを「文字の集まり」に変換して送っているのです

と書きました。

Base5811

Base64では、この「文字の集まり」を

・a~z(26文字)
・A~Z(26文字)
・0~9(10文字)
・+と/(2文字)


64文字と「=」で表現します。

例えば、そうですね。



をBase64でエンコードすると

44GC

に なります。

Base5812

あるいは、そうですね。

ピヨ太

という単語をBase64でエンコードすると

44OU44Oo5aSq

に なります。

Base5813

せっかくなので、もう一例いきましょう。

IT用語

という単語をBase64でエンコードすると

SVTnlKjoqp4=

に なります。

Base5814

すべて

・a~z(26文字)
・A~Z(26文字)
・0~9(10文字)
・+と/(2文字)


64文字のどれかと「=」で表現されていますよね。

もちろん、文字だけでは ありません。
画像も、動画も、圧縮ファイルも、すべて

・a~z(26文字)
・A~Z(26文字)
・0~9(10文字)
・+と/(2文字)


64文字のどれかと「=」の組み合わせに変換されます。

だから「base」「64」です。
Base64はベースとなる文字64個でデータを表現するやり方です。

長くなったので、まとめておきます。
ここまでの説明のポイントは

1.Base64はエンコード方式(データの変換ルール)だよ
2.Base64ではデータを「a~z」「A~Z」「0~9」「+」「/」の64文字と「=」の組み合わせで表現するよ


です。
押さえておいてください。

以上を踏まえて

Base64の58文字版

が「Base58」です。

Base64ではデータを

・a~z(26文字)
・A~Z(26文字)
・0~9(10文字)
・+と/(2文字)


64文字(と「=」)で表現しました。

Base58ではデータを

・a~zからlを除いたやつ(25文字)
・A~ZからIとOを除いたやつ(24文字)
・0~9から0を除いたやつ(9文字)


58文字で表現します。

Base5815

「0(数字のゼロ)」と「O(大文字のオー)」は見た目が似ています。
「l(小文字のエル)」と「I(大文字のアイ)」もそっくりです。
Base64から、これらの見た目が似ている文字を「手で書き写したりするときに紛らわしいよね!」ということで除いたのがBase58です。
※「+」「/」「=」が除外されたのはダブルクリックで全選択できない(例えば「SVTnlKjoqp4=」をダブルクリックしても最後の「=」が選択されない)から……という説を見ましたが、ウソかホントかは知りません。

細かく見ていくと、もう少しあれやこれやな違いがありますけどね。
そこら辺の「あれやこれや」が気になる方は他のところで情報を補完してください。
基本的には

Base64の58文字版がBase58

と思っておけば、困ることは少ないはずです。


image piyo2

一言でまとめるよ

まぁ「Base58」って単語が出てきたら「データを58文字の組み合わせに変換するやり方なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像039
書籍画像057

おまけ

■訳してみるよ

「base(ベース)」の意味は「基底」とか「土台」とかです。
58は「58」ですね。
何となく くっつけると

基底が58(個の文字)

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
エンジニア育成現場の「失敗」集めてみた。 42の失敗事例で学ぶマネジメントのうまい進めかた
体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践