Base64の仕組みについて

こんにちは、tangoです。
今回は、メールの送受信時やBasic認証でも利用されているBase64の仕組みについて学習した内容をまとめました。


Base64とは

64種類(A~Z、a~z、1~9、+、/)の文字が記載されている変換表と「=」を用いてデータを変換する方式

Base64の変換表 + 不足桁の文字埋め

Base64の仕組み

◇エンコード

1.データを2進数に変換。
2-1.1で変換した2進数を6bitごとに分割。
2-2.分割できない場合、末尾に「0」を追加。
3.Base64の変換表を用いて、2-1で分割した2進数を文字に変換。
4-1.3で変換した文字を4文字ごとに分割。
4-2.分割できない場合、末尾に「=」を追加。

◇デコード

1.末尾の「=」を削除。
2.Base64の変換表を用いて、文字を2進数 に変換。
3.2で変換した2進数を8bitごとに分割。
4.3で分割した2進数を16進数に変換。
5.4で変換した16進数をデータに変換。

機器情報とソースコード

◇機器

クライアント:ノートPC(Windows10)

◇ソースコード(Python)

GitHub:https://github.com/tango3304/Base64
参照データ:https://tex2e.github.io/rfc-translater/html/rfc4648.html#10--Test-Vectors

検証

◇エンコード & デコード

エンコード & デコード(検証結果)