c语言凯撒加密法代码
时间: 2024-10-11 13:17:05 浏览: 20
在C语言中,凯撒加密法是一种简单的替换式密码技术,它通过将明文中的每个字符按照字母表向右(或向左)移动固定数量的位置来进行加密。以下是一个基础的凯撒加密函数的示例:
```c
#include <stdio.h>
#include <ctype.h>
char caesar_encrypt(char input_char, int shift) {
if (isalpha(input_char)) { // 检查输入字符是否为字母
if (islower(input_char)) {
return ((input_char - 'a' + shift) % 26) + 'a'; // 对小写字母处理
} else {
return ((input_char - 'A' + shift) % 26) + 'A'; // 对大写字母处理
}
}
return input_char; // 非字母字符保持不变
}
void caesar_cipher(char *message, int shift, char encrypted[]) {
for (int i = 0; message[i] != '\0'; i++) {
encrypted[i] = caesar_encrypt(message[i], shift);
}
encrypted[i] = '\0'; // 确保字符串结束符添加
}
int main() {
char message[100];
printf("请输入要加密的明文:");
fgets(message, sizeof(message), stdin);
char encrypted[100];
int shift;
printf("请输入偏移量(shift):");
scanf("%d", &shift);
caesar_cipher(message, shift, encrypted);
printf("加密后的密文是:%s\n", encrypted);
return 0;
}
```
在这个例子中,`caesar_encrypt` 函数负责单个字符的加密,`caesar_cipher` 函数则遍历整个字符串并对每个字符应用加密。你可以通过调整`main`函数中的`shift`变量来改变加密强度。
阅读全文