为防止信息窃取,需要采用加密技术将电文加密变成密文。恺撒密码是一种简单的替换加密技术,其规则是将明文中的所有字母都在字母表上偏移offset位后被替换成密文:当offset大于零时,表示向后偏移;当offset小于零时,表示向前偏移。输入一个以回车符为结束标志的字符串(少于80个字符),再输入一个整数offset,用凯撒密码将其加密后输出。 输入格式: 从键盘读入一个字符串(少于80个字符),以回车结束。再读入一个整数offset。 输出格式: 输出加密后的字符串。C语言
时间: 2024-03-14 14:48:26 浏览: 114
以下是使用 C 语言实现恺撒密码加密的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[80];
int offset;
// 读取输入的字符串和偏移量
printf("请输入要加密的字符串:");
fgets(str, 80, stdin);
printf("请输入偏移量:");
scanf("%d", &offset);
// 对字符串进行加密
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (str[i] >= 'a' && str[i] <= 'z') {
str[i] = 'a' + (str[i] - 'a' + offset + 26) % 26;
} else if (str[i] >= 'A' && str[i] <= 'Z') {
str[i] = 'A' + (str[i] - 'A' + offset + 26) % 26;
}
}
// 输出加密后的字符串
printf("加密后的字符串:%s", str);
return 0;
}
```
假设我们输入的字符串为 "hello, world!",偏移量为 3,则输出的加密后的字符串为 "khoor, zruog!"。
相关问题
为防止信息窃取,需要采用加密技术将电文加密变成密文。恺撒密码是一种简单的替换加密技术,其规则是将明文中的所有字母都在字母表上偏移offset位后被替换成密文:当offset大于零时,表示向后偏移;当offset小于零时
,表示向前偏移。比如,当offset=3时,A被替换成D,B被替换成E,以此类推,Z被替换成C。当offset=-2时,A被替换成Y,B被替换成Z,以此类推,C被替换成A。
恺撒密码的加密过程如下:
1. 将明文转换成大写字母形式。
2. 对于明文中的每个字母,将其在字母表上偏移offset位,得到对应的密文字母。
3. 将密文字母连接成密文。
为了解密密文,只需将offset取相反数,再按照相同的规则进行偏移即可得到明文。
需要注意的是,恺撒密码有很弱的安全性,容易被破解。因此,在实际应用中应该采用更加复杂的加密算法。
6-18 电码加密 分数 10 作者 余贞侠 单位 成都信息工程大学 为防止信息窃取,需要采用加密技术将电文加密变成密文。恺撒密码是一种简单的替换加密技术,其规则是将明文中的所有字母都在字母表上偏移offset位后被替换成密文:当offset大于零时,表示向后偏移;当offset小于零时,表示向前偏移。输入一个以回车符为结束标志的字符串(少于80个字符),再输入一个整数offset,调用函数fun()后用凯撒密码将其加密后输出。 函数接口定义: void fun ( char *Pstr, const
char *Pstr, const int offset) {
int len = strlen(Pstr);
for(int i = 0; i < len; i++) {
if(isalpha(Pstr[i])) { // 判断是否为字母
if(isupper(Pstr[i])) { // 判断是否为大写字母
Pstr[i] = (Pstr[i] - 'A' + offset + 26) % 26 + 'A'; // 加密
} else {
Pstr[i] = (Pstr[i] - 'a' + offset + 26) % 26 + 'a'; // 加密
}
}
}
printf("%s", Pstr); // 输出加密后的字符串
}
阅读全文