■この記事の概要
この記事では、C言語を用いたシーザー暗号の暗号化・復号化プログラムを解説しています。
サンプルコード付きで実用的な内容です。
■シーザー暗号とHALの秘密
#include <stdio.h>
#include <ctype.h>
char シーサー暗号(char c,int ずらす) {
if (isupper(c))
return 'A' + (c - 'A' + ずらす + 26) % 26;
if (islower(c))
return 'a' + (c - 'a' + ずらす + 26) % 26;
return c;
}
void 暗号化(char *input,int ずらす){
for(char *cp = &input[0]; *cp != '\0'; cp++){
*cp = シーサー暗号(*cp,ずらす);
}
}
void 復号化(char *input,int ずらす){
for(char *cp = &input[0]; *cp != '\0'; cp++){
*cp = シーサー暗号(*cp,-ずらす) ;
}
}
int main(void){
char msg[] = "abcd...HAL...z";
puts(msg);
暗号化(msg,1);
puts(msg);
復号化(msg,1);
puts(msg);
}
■遊び方
コピペしてコンパイルして走らせるだけ。
映画[2001年宇宙の旅]のコンピュータの名前の秘密が表示されます。
※この秘密はどうも俗説らしいです。