Mae向きなブログ

Mae向きな日記のブログ版。ようやくこちらに移行してきました。

平成20年度秋季基本情報午後問10

平成20年度秋季 基本情報技術者試験(FE)の午後問題10は、

  • (換字暗号)与えられた平文を、換字表を用いて暗号文に変換する関数encrypt_text関数

に関する問題でした。

f:id:rahaema:20190321150541p:plain

プログラム例(h20a_fe_pm10.c)

実行結果

試験問題では、暗号化する関数のみでしたが、元に戻せないと面白くないので、平文に戻す復号関数(decrypt_text)も作って試してみました。換字表についても、問題文とは異なっています(単純な換字表です)。

コンパイル

$ gcc h20a_fe_pm10.c -o fecrypt

平文(in.txt)

This is a plain text.
Good Luck!!

暗号化(in.txt -> out.txt)

$ ./fecrypt e in.txt out.txt
 !"#$%&'()*+,-./0123456
789:;<=>?@ABCDEFGHIJKLM
NOPQRSTUVWXYZ[\]^_`abcd
efghijklmnopqrstuvwxyz{

暗号化されたファイル(out.txt)

Qkjt$ee.N3qmRxe)ufyu0
E++N6GzTz99

復号(out.txt -> tmp.txt)

$ ./fecrypt d out.txt tmp.txt
 !"#$%&'()*+,-./0123456
789:;<=>?@ABCDEFGHIJKLM
NOPQRSTUVWXYZ[\]^_`abcd
efghijklmnopqrstuvwxyz{
$ cat tmp.txt
This is a plain text.
Good Luck!!

関連