祖冲之密码算法C语言代码
时间: 2024-05-17 19:09:35 浏览: 220
祖冲之密码算法是一种基于数学的密码算法,它可以用于加密和解密数据。下面是祖冲之密码算法的C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_LEN 100
void encrypt(char* plain, char* key);
void decrypt(char* cipher, char* key);
int main()
{
char plain[MAX_LEN], key[MAX_LEN], cipher[MAX_LEN];
int choice;
printf("请选择操作:\n");
printf("1. 加密\n");
printf("2. 解密\n");
scanf("%d", &choice);
if (choice == 1)
{
printf("请输入明文和密钥:\n");
scanf("%s%s", plain, key);
encrypt(plain, key);
printf("密文为:%s\n", plain);
}
else if (choice == 2)
{
printf("请输入密文和密钥:\n");
scanf("%s%s", cipher, key);
decrypt(cipher, key);
printf("明文为:%s\n", cipher);
}
else
{
printf("输入有误!\n");
}
return 0;
}
void encrypt(char* plain, char* key)
{
int len = strlen(plain);
int key_len = strlen(key);
for (int i = 0; i < len; i++)
{
plain[i] = (plain[i] + key[i % key_len]) % 26 + 'a';
}
}
void decrypt(char* cipher, char* key)
{
int len = strlen(cipher);
int key_len = strlen(key);
for (int i = 0; i < len; i++)
{
cipher[i] = (cipher[i] - key[i % key_len] + 26) % 26 + 'a';
}
}
```
这段代码实现了祖冲之密码算法的加密和解密功能,可以让用户选择进行哪种操作,并输入明文(或密文)和密钥。加密和解密的过程都是通过对明文(或密文)中每个字符与对应密钥中字符的加减运算来实现的。
阅读全文