C语言实现凯撒密码算法:加密解密示例代码
以下是使用C语言编写的凯撒密码算法示例代码:
#include <stdio.h>
// 凯撒密码加密函数
void caesarEncrypt(char message[], int shift) {
int i = 0;
char ch;
while (message[i] != '\0') {
ch = message[i];
if (ch >= 'a' && ch <= 'z') {
ch = ch + shift;
if (ch > 'z') {
ch = ch - 'z' + 'a' - 1;
}
message[i] = ch;
}
else if (ch >= 'A' && ch <= 'Z') {
ch = ch + shift;
if (ch > 'Z') {
ch = ch - 'Z' + 'A' - 1;
}
message[i] = ch;
}
i++;
}
}
// 凯撒密码解密函数
void caesarDecrypt(char message[], int shift) {
int i = 0;
char ch;
while (message[i] != '\0') {
ch = message[i];
if (ch >= 'a' && ch <= 'z') {
ch = ch - shift;
if (ch < 'a') {
ch = ch + 'z' - 'a' + 1;
}
message[i] = ch;
}
else if (ch >= 'A' && ch <= 'Z') {
ch = ch - shift;
if (ch < 'A') {
ch = ch + 'Z' - 'A' + 1;
}
message[i] = ch;
}
i++;
}
}
int main() {
char message[100];
int shift;
printf("请输入要加密/解密的消息:");
fgets(message, sizeof(message), stdin);
printf("请输入位移值(正数为加密,负数为解密):");
scanf("%d", &shift);
// 去除输入中的换行符
if (message[strlen(message) - 1] == '\n') {
message[strlen(message) - 1] = '\0';
}
caesarEncrypt(message, shift);
printf("加密后的消息:%s\n", message);
caesarDecrypt(message, shift);
printf("解密后的消息:%s\n", message);
return 0;
}
上述代码中的caesarEncrypt()函数用于加密消息,caesarDecrypt()函数用于解密消息。在main()函数中,首先从用户输入获取消息和位移值,然后调用相应的函数进行加密和解密操作,最后输出结果。
请注意,该示例代码中没有对输入进行严格的验证和错误处理,实际使用中可能需要进行适当的改进。
原文地址: http://www.cveoy.top/t/topic/bmx3 著作权归作者所有。请勿转载和采集!