用C语言实现凯撒密码算法,包括加密算法和解密算法
时间: 2024-12-16 07:19:50 浏览: 15
凯撒密码是一种简单的替换式加密算法,它通过将字母表中的每个字符向右移动固定数量的位置来进行加密。以下是使用C语言实现凯撒密码的基本步骤:
**加密函数(Encrypt):**
```c
char caesar_encrypt(char letter, int shift) {
if (letter >= 'A' && letter <= 'Z') { // 处理大写字母
return ((letter - 'A' + shift) % 26) + 'A';
} else if (letter >= 'a' && letter <= 'z') { // 处理小写字母
return ((letter - 'a' + shift) % 26) + 'a';
}
return letter; // 对于非字母字符不做处理
}
```
**解密函数(Decrypt):**
```c
char caesar_decrypt(char encrypted, int shift) {
return caesar_encrypt(encrypted, -shift);
}
```
**完整示例:**
```c
#include <stdio.h>
#include <ctype.h>
// 凯撒密码加密和解密函数
char caesar_encrypt(char letter, int shift);
char caesar_decrypt(char encrypted, int shift);
int main() {
char message[] = "Hello, World!";
int shift = 3; // 密钥
printf("Original Message:\n%s\n", message);
// 加密
for (char *p = message; *p != '\0'; ++p) {
*p = caesar_encrypt(*p, shift);
}
printf("Encrypted Message:\n%s\n", message);
// 解密
for (char *p = message; *p != '\0'; ++p) {
*p = caesar_decrypt(*p, shift);
}
printf("Decrypted Message:\n%s\n", message);
return 0;
}
// ... 上述加密和解密函数的定义
```
阅读全文