C语言电文环形加密 26个字母
时间: 2024-12-14 17:17:10 浏览: 13
电文环形加密,也被称为Caesar Cipher,是一种简单的替换式密码技术,在C语言中实现时,可以将明文中的每个字符按照固定位移进行循环移位。对于26个英文字母,通常每移动一位就会对应一个新的字母。例如,字母A加密后的结果可能是B(移位一位),D(移位两位),F(移位三位),因为字母表会绕回开头。
下面是一个简单的C语言程序,用于实现这种加密,假设移位量为3(实际上可以由用户输入):
```c
#include <stdio.h>
#include <string.h>
char encrypt(char letter, int shift) {
// A-Z 和 a-z 的循环移位
if (letter >= 'a' && letter <= 'z') {
letter = ((letter - 'a' + shift) % 26) + 'a';
} else if (letter >= 'A' && letter <= 'Z') {
letter = ((letter - 'A' + shift) % 26) + 'A';
}
return letter;
}
void caesar_cipher_encrypt(char *plaintext, char *ciphertext, int shift) {
int len = strlen(plaintext);
for (int i = 0; i < len; i++) {
ciphertext[i] = encrypt(plaintext[i], shift);
}
ciphertext[len] = '\0'; // 添加结束符
}
int main() {
char plaintext[100];
char ciphertext[100];
printf("请输入明文:");
fgets(plaintext, sizeof(plaintext), stdin); // 排除换行符
plaintext[strlen(plaintext)-1] = '\0';
int shift;
printf("请输入移位量:");
scanf("%d", &shift);
caesar_cipher_encrypt(plaintext, ciphertext, shift);
printf("加密后的密文:%s\n", ciphertext);
return 0;
}
```
阅读全文