【C言語】
シーザー暗号とHALの秘密
~暗号化と復号化の実装~


■この記事の概要

この記事では、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年宇宙の旅]のコンピュータの名前の秘密が表示されます。
※この秘密はどうも俗説らしいです。