XOR暗号
http://www.geocities.jp/ky_webid/algorithm/018.html
暗号というか単にXORが同じ演算を二回行うと元の値に戻ることを利用しただけのものですね。
実際にプログラムを作って試してみましょう。
#include <stdio.h> #include <string.h> int main (void) { char enc[100]; size_t i; int key = 123145; puts("値を入力してください"); scanf("%s",enc); // 暗号化 for(i=0;i<strlen(enc);i++){ enc[i] ^= key; } printf("%s\n",enc); // 複号 for(i=0;i<strlen(enc);i++){ enc[i] ^= key; } printf("%s\n",enc); return 0; }
$ main 値を入力してください honadijfekaazet afghm`colbhhsl} honadijfekaazet
うまく元の値に戻っていますね。