字母环形加密的C语言代码
时间: 2024-10-29 16:16:59 浏览: 44
字母环形加密(也称为凯撒密码或轮换密码)是一种简单的替换式加密方法,通过将明文中的每个字符按照固定的偏移量向右移动,形成一个新的密文。下面是一个基本的C语言实现字母环形加密的例子:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
void rotate_encrypt(char *str, int shift);
int main() {
char plaintext[100], ciphertext[100];
printf("请输入明文: ");
fgets(plaintext, sizeof(plaintext), stdin);
plaintext[strlen(plaintext) - 1] = '\0'; // 去掉fgets读取到的换行符
int shift;
printf("请输入偏移量(1-25): ");
scanf("%d", &shift);
// 加密
rotate_encrypt(plaintext, shift);
printf("加密后的密文: %s\n", ciphertext);
return 0;
}
// 环形加密函数
void rotate_encrypt(char *str, int shift) {
int len = strlen(str);
for (int i = 0; i < len; ++i) {
if (isalpha(str[i])) { // 判断是否为字母
str[i] = ((str[i] - 'a' + shift) % 26) + 'a'; // 对大写字母同样处理
}
}
}
```
在这个代码中,用户输入明文和偏移量,然后`rotate_encrypt`函数会遍历字符串中的每个字符,如果是字母则进行相应的偏移并保持字母表循环。
阅读全文