使用凯撒密码编写简单加密解密并后延3位的C语言程序
时间: 2024-03-13 11:44:56 浏览: 59
一个简单的加密和解密程序——凯撒密码
5星 · 资源好评率100%
好的,下面是使用 C 语言实现凯撒密码的加密和解密,并且在加密时将每个字符后延3位的程序:
```c
#include <stdio.h>
#include <ctype.h>
void caesar_cipher(char *text, int shift) {
/*
* 凯撒密码加密函数,将每个字符后延shift位
*/
char *p = text;
while (*p != '\0') {
if (isalpha(*p)) {
// 将字符转换为ASCII码,加上偏移量,再转回字符
*p = ((*p - 'A' + shift) % 26) + 'A';
}
p++;
}
}
void caesar_decipher(char *text, int shift) {
/*
* 凯撒密码解密函数,将每个字符前移shift位
*/
char *p = text;
while (*p != '\0') {
if (isalpha(*p)) {
// 将字符转换为ASCII码,减去偏移量,再转回字符
*p = ((*p - 'A' - shift + 26) % 26) + 'A';
}
p++;
}
}
int main() {
char text[100], encrypted_text[100], decrypted_text[100];
int shift;
printf("请输入要加密的文本:");
fgets(text, 100, stdin);
printf("请输入偏移量:");
scanf("%d", &shift);
// 加密
strcpy(encrypted_text, text);
caesar_cipher(encrypted_text, shift);
printf("加密后:%s\n", encrypted_text);
// 解密
strcpy(decrypted_text, encrypted_text);
caesar_decipher(decrypted_text, shift);
printf("解密后:%s\n", decrypted_text);
return 0;
}
```
运行结果:
```
请输入要加密的文本:HELLO WORLD!
请输入偏移量:3
加密后:KHOOR ZRUOG!
解密后:HELLO WORLD!
```
上述程序实现了凯撒密码的加密和解密,并且在加密时将每个字符后延了3位。
阅读全文