エンコード方式の1つであるBase64に関する次の記述のうち、最も不適切なものはどれか。
@ バイナリデータを文字列データに変換する手法である。
A 変換した文字列データは、元のバイナリデータよりデータサイズが大きくなる。
B 大文字小文字アルファベット、数字、一部の記号 (+、/) の64種類で構成される変換表を用いる。
C 8ビットごとに分割して、変換表を用いてビットを文字に変換する。
D 文字に変換後、4文字ごとに連結し、最後が4文字に足りない場合はパディング文字 (=) を追加する。
C
@ Base64は、バイナリデータを A 〜 Z、a 〜 z、0 〜 9、+、/ の64種類の文字を使用して文字列データに変換する手法である。
A 3バイトのデータサイズが4バイトになるため、約33%データサイズが大きくなる。
B 大文字 (A 〜 Z)、小文字 (a 〜 z)、数字 (0 〜 9)、+、/ の64種類の文字を使用する
C 不適切である。3バイト (24ビット) を6ビットずつ区切って4つのブロックとし、不足分は 0を追加して6ビットにする。
D 正しい記述である。
例えば、“fast” の ASCII コードは 102, 97, 115, 116 であり、これを 2 進数に変換すると、01100110, 01100001, 01110011, 01110100 となる。
01100110 01100001 01110011 01110100 は
6ビットずつ区切って4つのブロックとし、不足分は 0 を追加して
011001 100110 000101 110011 011101 000000
これをBASE64で表すと
ZmFzdA。
4文字ごとに連結し、最後が4文字に足りない場合はパディング文字 (=) を追加して、ZmFzdA== となる。
V−7 | 目次 | V−9 |