文字種が多すぎて人間が読めない感じになっちゃうからだろう。◆base3232進法は使われてないけど、base32というエンコード(符号化。)は良く使用されている。「base」すなわち「基」が32あるエンコードだ。RFC4648っていう取り決めが存在している。「A~Z」の26文字と、「2~7」の6文字、あと「=」が使用される。33文字あんじゃ~んwウケる~wマジ卍~wゼロとイチが含まれないのは「IとかOと見間違っちゃわね?」という意味の解らん理由。なんでそんなことになったんだろう。人間が読んで処理することを想定した?本当に分からん。いう経緯があったんだ。▼なぜbase32が必要なのかマルチバイト文字っていう種類の文字表現がある。今お前が読んでいる文字はマルチバイト文字列です。😎マルチバイト文字ってのは中々に闇の深い野郎で、更に言えば「どんなシステムでも扱える」という代物ではない。その文字のエンコードを一旦ゼロとイチにまで分解(デコード)してしまってから、ASCIIという、大抵のシステムで扱える文字コードに変換してから伝達してみたくなった。言えば、ASCIIの中でも制御文字とか含まれちゃうから、それを除去したかった。それがbase32です。変換方法とか手順踏めば簡単だし教えてもいいけど、どうせライブラリ使えば良いだけだから教えない。base32は、32進法ではないということだけ注意。◆base64base32よりも圧縮率を高めたくなってbase64も開発された。base32だと「5ビットの情報量」を一文字にできるけど、base64なら「6ビット」までを一文字にできる。base64は「データURL」という表現にも使用される。スーパー雑に説明するんだけど、例えば画像ってものがあるじゃないですか。「.jpg」とかついてるやつ。それは「バイナリデータ」という、ゼロとイチで構成されているデータなんです。人間が読むことを想定しないデータ。「.txt」とかのテキストデータは人間に読みやすいようにゼロとイチ以外の文字も表現できるようにルールが整備されている。そのバイナリデータっていうものは、テキストに埋め込むことが極めて難しい。埋め込んでもいいんだけど、「01010101...」ってな感じに文字数が膨大になる。それを文字数少なく埋め込むためにbase64変換が使用される。バイナリデータにおける「0」と「1」は、そのまま1ビットの情報量しか持たない。テキストデータにおける「文字」である「0」と「1」はなんと1オクテット、すなわち1バイト、すなわち8ビット、すなわち8倍の情報量になっちゃうんですね。そのかわりゼロとイチ以外の、例えば「2」とか「A」っていう文字も1バイト使って同じように表現できる。※ASCII文字コードの本当の所では1文字が7ビットだし、あと(略HTML、つまり今お前らが見ているこのページは、テキストで書かれている。バイナリで書くヤツはいない。そのHTMLというテキストの中に無理やりバイナリデータを埋め込みたくなったらbase64変換してデータURLとして参照すればいいんです。詳しくは説明しないけどそんな感じ。※最近だとWasmでバイナリのまま色々な表現が出来たりもする。▼用途データをハッシュ化すると、ハッシュ関数によってはバイナリ値になっちゃったりして、バイナリをやりとりするのがダルいからbase32とかbase64でエンコードしたりする。みんな大好きで脆弱なBasic認証とかもユーザー名とパスワードをbase64でエンコードしてヘッダーに詰め詰めして送ってやらねばならん。パスワードに色々な文字列を設定できるようにしたいから。後は自分でなんとかしろ。コメントをキャンセルメールアドレスが公開されることはありません。コメント名前メールアドレスサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。「あーん💖」して欲しい食べ物をひとつ思い浮かべてください。こちらTwitter:@LivinDyinKittenにDMしろ。メンションつけて罵倒しろ。※本垢だけど嫌がらせに使っているアカウントなので何もつぶやいていません。Norén%d人のブロガーが「いいね」をつけました。