c语言 编写一个加解密程序实现广义Caesar密码
时间: 2024-09-17 07:06:40 浏览: 61
Caesar_java_Caesar凯撒古典密码加密解密_
5星 · 资源好评率100%
在C语言中,编写一个广义Caesar密码加解密程序通常涉及创建两个函数:一个用于加密(通过将字母移动指定的位置),另一个用于解密(反向移动)。Caesar密码是一种简单的替换式密码,它通过固定偏移量对字母表进行循环移位。
以下是一个简单的广义Caesar密码实现示例:
```c
#include <stdio.h>
#include <string.h>
// 加密函数
char caesar_encrypt(char ch, int shift) {
if (ch >= 'a' && ch <= 'z') { // 小写字母处理
return ((ch - 'a' + shift) % 26) + 'a';
} else if (ch >= 'A' && ch <= 'Z') { // 大写字母处理
return ((ch - 'A' + shift) % 26) + 'A';
} else { // 非字母字符保持不变
return ch;
}
}
// 解密函数
char caesar_decrypt(char ch, int shift) {
return caesar_encrypt(ch, -shift);
}
int main() {
char input[100];
int shift, i;
printf("请输入要加密的文本: ");
fgets(input, sizeof(input), stdin);
printf("请输入偏移量(0-25): ");
scanf("%d", &shift);
printf("加密前的文本: %s\n", input);
for (i = 0; input[i]; i++) {
input[i] = caesar_encrypt(input[i], shift);
}
printf("加密后的文本: %s\n", input);
printf("解密偏移量: %d\n", shift);
for (i = 0; input[i]; i++) {
input[i] = caesar_decrypt(input[i], shift);
}
printf("解密后的文本: %s\n", input);
return 0;
}
```
阅读全文