C语言双重密钥加密系统(无指针) - 凯撒密码和替代密码
这是一个使用C语言编写的带有双重密钥的加密系统,它使用了简单的凯撒密码和替代密码算法,并且没有使用指针。
#include <stdio.h>
#include <stdlib.h>
// 凯撒密码加密函数
char caesarEncrypt(char ch, int key) {
if (ch >= 'A' && ch <= 'Z') {
return (ch - 'A' + key) % 26 + 'A';
} else if (ch >= 'a' && ch <= 'z') {
return (ch - 'a' + key) % 26 + 'a';
}
return ch;
}
// 替代密码加密函数
char substitutionEncrypt(char ch, char key) {
if (ch >= 'A' && ch <= 'Z') {
return (ch - 'A' + (key - 'A')) % 26 + 'A';
} else if (ch >= 'a' && ch <= 'z') {
return (ch - 'a' + (key - 'A')) % 26 + 'a';
}
return ch;
}
// 加密函数
void encrypt(char* input, char* key1, char* key2) {
int i = 0;
while (input[i] != '\0') {
char ch = input[i];
ch = caesarEncrypt(ch, key1[i % 3] - 'A'); // 使用凯撒密码加密
ch = substitutionEncrypt(ch, key2[i % 3]); // 使用替代密码加密
printf('%c', ch);
i++;
}
printf('\n');
}
int main() {
char input[100];
char key1[3];
char key2[3];
printf("请输入要加密的字符串:");
scanf("%s", input);
printf("请输入第一个密钥(3个大写字母):");
scanf("%s", key1);
printf("请输入第二个密钥(3个大写字母):");
scanf("%s", key2);
encrypt(input, key1, key2);
return 0;
}
使用这个程序,你可以输入要加密的字符串和两个密钥,程序将输出加密后的结果。其中,第一个密钥用于凯撒密码加密,第二个密钥用于替代密码加密。结果将以密文形式输出。
请注意,这只是一个简单的加密系统示例,它并不是一个安全的加密算法,因此不建议用于实际的加密需求。
原文地址: https://www.cveoy.top/t/topic/vhB 著作权归作者所有。请勿转载和采集!