1 *设计一种算法,把电文明文加密之后变成密文,利用解密函数才能对密文解密,显示出明文内容。。c语言
时间: 2024-02-18 07:04:02 浏览: 64
C语言实现加密解密算法
3星 · 编辑精心推荐
这里介绍一种简单的加密算法:替换加密法。
替换加密法的原理是将明文中每个字母替换为另一个字母,以实现加密的目的。具体步骤如下:
1. 定义一个替换表,表示每个字母被替换为哪个字母。
2. 遍历明文字符,将每个字符替换为替换表中对应的字符,生成密文。
3. 定义解密函数,根据替换表将密文中的每个字符替换为明文中对应的字符,生成明文。
以下是一个简单的 C 语言代码实现:
```c
#include <stdio.h>
#include <string.h>
// 加密函数
void encrypt(char *plain, char *cipher, char *table)
{
int len = strlen(plain);
for (int i = 0; i < len; i++)
{
cipher[i] = table[plain[i] - 'a'];
}
cipher[len] = '\0';
}
// 解密函数
void decrypt(char *cipher, char *plain, char *table)
{
int len = strlen(cipher);
for (int i = 0; i < len; i++)
{
for (int j = 0; j < 26; j++)
{
if (cipher[i] == table[j])
{
plain[i] = 'a' + j;
break;
}
}
}
plain[len] = '\0';
}
int main()
{
char table[26] = {'x', 'y', 'z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w'};
char plain[100], cipher[100], decrypted[100];
printf("请输入明文:");
scanf("%s", plain);
encrypt(plain, cipher, table);
printf("加密后的密文为:%s\n", cipher);
decrypt(cipher, decrypted, table);
printf("解密后的明文为:%s\n", decrypted);
return 0;
}
```
在这个程序中,我们定义了一个替换表 `table`,表示字母表中每个字母被替换为另一个字母。然后我们通过 `encrypt()` 函数将明文加密为密文,再通过 `decrypt()` 函数将密文解密为明文。
阅读全文