#include #include void Encrypt(char* msg) { int i, j, k, m1, m2, m; char enc[26]; char alfabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; char key[26]; printf("key: "); scanf("%s", key); k = 0; for (i = 0; i < strlen(msg); i++) { for (j = 0; j < strlen(alfabet); j++) { if (msg[i] == alfabet[j]) m1 = j; if (key[k] == alfabet[j]) m2 = j; } m = (m1 + m2) % strlen(alfabet); enc[i] = alfabet[m]; if (k == strlen(key) - 1) k = 0; else k++; } enc[i] = '\0'; printf("%s\n", enc); } void Decrypt(char* msg) { int i, j, k, m1, m2, m; char dec[26]; char alfabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; char key[26]; printf("key: "); scanf("%s", key); k = 0; for (i = 0; i < strlen(msg); i++) { for (j = 0; j < strlen(alfabet); j++) { if (msg[i] == alfabet[j]) m1 = j; if (key[k] == alfabet[j]) m2 = j; } m = (m1 - m2 + strlen(alfabet)) % strlen(alfabet); dec[i] = alfabet[m]; if (k == strlen(key) - 1) k = 0; else k++; } dec[i] = '\0'; printf("%s\n", dec); } int main(int argc, char* argv[]) { if (argc == 1) printf("%s: no opt & msg", argv[0]); else if (argc == 2) printf("%s: no opt or msg", argv[0]); else if (argc == 3) { if (strcmp(argv[1], "-Ecsr") == 0) Encrypt(argv[2]); else if (strcmp(argv[1], "-Dcsr") == 0) Decrypt(argv[2]); else printf("%s: no such option\n", argv[0]); } return 0; }