CAESAR密码c语言简单写法
时间: 2024-09-21 07:04:04 浏览: 40
C语言简单凯撒密码.zip
在C语言中,CAESAR密码也称为凯撒密码(Caesar Cipher),是一种最简单的替换式加密方法。它通过将明文中的每个字母按照固定位移进行替换来达到加密的目的。下面是一个简单的CAESAR密码加密和解密的C程序,位移设为3作为示例:
```c
#include <stdio.h>
#include <ctype.h>
char encrypt_caesar(char c, int shift) {
if (isalpha(c)) {
c = (c - 'A' + shift) % 26 + 'A';
}
return c;
}
char decrypt_caesar(char c, int shift) {
return encrypt_caesar(c, -shift);
}
int main() {
char message[100], encrypted[100];
printf("请输入明文:\n");
fgets(message, sizeof(message), stdin);
int shift;
printf("请输入位移量(1-25):\n");
scanf("%d", &shift);
// 加密
for (size_t i = 0; message[i] != '\0'; i++) {
encrypted[i] = encrypt_caesar(message[i], shift);
}
encrypted[i] = '\0'; // 结束符
printf("加密后的密文是:\n%s\n", encrypted);
// 解密
for (size_t i = 0; encrypted[i] != '\0'; i++) {
message[i] = decrypt_caesar(encrypted[i], shift);
}
printf("解密后的明文是:\n%s\n", message);
return 0;
}
```
在这个程序中,`encrypt_caesar`和`decrypt_caesar`函数分别处理加密和解密过程。用户输入明文和位移量后,程序会对明文字符进行相应的替换并显示结果。
阅读全文