c语言实现凯撒密码的加密
时间: 2024-10-09 11:15:04 浏览: 64
C语言实现凯撒密码加密和解密
凯撒密码是一种简单的替换式加密技术,它通过将明文中的每个字母按照固定的位移量(密钥)进行循环移动来实现加密。在C语言中,可以使用数组和循环来实现这个过程。以下是一个基本的C程序示例:
```c
#include <stdio.h>
#include <string.h>
char caesar_encrypt(char key, char input_char) {
// A-Z 的ASCII值范围是65到90
if (input_char >= 'A' && input_char <= 'Z') {
return ((input_char - 'A' + key) % 26) + 'A';
} else if (input_char >= 'a' && input_char <= 'z') {
return ((input_char - 'a' + key) % 26) + 'a';
}
// 如果输入字符不是大写字母或小写字母,则保持原样
return input_char;
}
void caesar_cipher_encrypt(char *plaintext, int key, char *ciphertext) {
for (int i = 0; plaintext[i] != '\0'; ++i) {
ciphertext[i] = caesar_encrypt(key, plaintext[i]);
}
ciphertext[i] = '\0'; // 确保字符串结尾添加终止符
}
int main() {
char plaintext[100];
char ciphertext[100];
printf("请输入明文: ");
fgets(plaintext, sizeof(plaintext), stdin);
plaintext[strlen(plaintext) - 1] = '\0'; // 去除fgets留下的换行符
int key;
printf("请输入密钥: ");
scanf("%d", &key);
caesar_cipher_encrypt(plaintext, key, ciphertext);
printf("加密后的文本: %s\n", ciphertext);
阅读全文