用c语言编写一个数据加密程序,从键盘输入一个字符串(长度不大于20),输出其对应的密文。加密规则是:将字符串中华每个字符的ASCII码的值加100,再将加密的密文还原并输出。
时间: 2024-12-08 15:19:20 浏览: 17
aes.rar_AES C 文件_AES任意字符串_AES加密数组C_aes加密文件 c_aes长度过长
5星 · 资源好评率100%
在C语言中编写一个简单的数据加密程序,可以按照以下步骤实现:
```c
#include <stdio.h>
#include <string.h>
// 加密函数
char encrypt(char c) {
if (c >= 'a' && c <= 'z') // ASCII小写字母范围
return ((c - 'a' + 100) % 26) + 'a';
else if (c >= 'A' && c <= 'Z') // ASCII大写字母范围
return ((c - 'A' + 100) % 26) + 'A';
else // 对于非字母字符保持原样
return c;
}
int main() {
char input[21]; // 长度不超过20的字符串
char output[21] = {0}; // 存储加密后的结果
printf("请输入一个字符串(不超过20个字符):");
fgets(input, sizeof(input), stdin); // 从键盘读取字符串
// 移除换行符
size_t len = strlen(input);
if (input[len - 1] == '\n')
input[len - 1] = '\0';
// 加密字符串
for (size_t i = 0; i < len; i++) {
output[i] = encrypt(input[i]);
}
// 输出加密后的字符串
printf("加密后的密文是:%s\n", output);
// 解密并还原输出(这里仅用于演示,实际应用中不需要解密)
printf("还原后的原始字符串是:");
for (size_t i = 0; i < len; i++) {
if (output[i] >= 'a' && output[i] <= 'z' || output[i] >= 'A' && output[i] <= 'Z')
printf("%c", (output[i] - 'a' - 100) % 26 + 'a');
else
printf("%c", output[i]);
}
printf("\n");
return 0;
}
```
运行这个程序,它会提示用户输入一个不超过20个字符的字符串,然后将其加密并显示结果。注意,为了简便起见,上述代码展示了如何加密并简略地进行了解密(实际上加密过程是单向操作,无需解密)。如果你需要一个完整的加密程序,通常不会包含解密步骤。
阅读全文