本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

令和5年度 技術士第一次試験問題【専門科目】

V−8

エンコード方式の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