用c语言编写一个实现凯撒密码的加解密
时间: 2024-09-07 18:02:52 浏览: 109
凯撒加密的C语言实现,支持交互式加解密和对文件的加解密.zip
凯撒密码是一种简单的替换加密技术,它通过将字母表中的每个字母移动固定数目的位置来进行加密。例如,如果移动的位置是3,那么'A'将被替换为'D','B'将被替换为'E',以此类推。解密则是将每个字母向相反方向移动相同的位置数。
以下是一个使用C语言实现凯撒密码加解密的示例代码:
```c
#include <stdio.h>
#include <string.h>
// 凯撒密码加密函数
void caesarEncrypt(char *text, int shift) {
int i = 0;
while (text[i]) {
char ch = text[i];
if (ch >= 'a' && ch <= 'z') {
// 小写字母加密
ch = 'a' + (ch - 'a' + shift) % 26;
} else if (ch >= 'A' && ch <= 'Z') {
// 大写字母加密
ch = 'A' + (ch - 'A' + shift) % 26;
}
text[i] = ch;
i++;
}
}
// 凯撒密码解密函数
void caesarDecrypt(char *text, int shift) {
int i = 0;
while (text[i]) {
char ch = text[i];
if (ch >= 'a' && ch <= 'z') {
// 小写字母解密
ch = 'a' + (ch - 'a' - shift + 26) % 26;
} else if (ch >= 'A' && ch <= 'Z') {
// 大写字母解密
ch = 'A' + (ch - 'A' - shift + 26) % 26;
}
text[i] = ch;
i++;
}
}
int main() {
char text[] = "Hello, World!";
int shift = 3;
printf("原始文本: %s\n", text);
caesarEncrypt(text, shift);
printf("加密后的文本: %s\n", text);
caesarDecrypt(text, shift);
printf("解密后的文本: %s\n", text);
return 0;
}
```
在这段代码中,`caesarEncrypt` 函数实现了加密过程,而 `caesarDecrypt` 函数实现了解密过程。我们使用了模运算 `%` 来处理字母的循环移动,确保在到达字母表末尾时能够从头开始继续移动。
阅读全文