仿射密码c语言
时间: 2023-12-02 15:09:03 浏览: 147
以下是一个简单的仿射密码的 C 语言实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main()
{
char plaintext[100], ciphertext[100];
int a, b, i;
printf("Enter plaintext: ");
fgets(plaintext, 100, stdin);
printf("Enter key (a and b): ");
scanf("%d %d", &a, &b);
// 加密
for (i = 0; plaintext[i] != '\0'; i++) {
if (isalpha(plaintext[i])) { // 只加密字母
if (isupper(plaintext[i])) {
ciphertext[i] = ((a * (plaintext[i] - 'A') + b) % 26) + 'A';
} else {
ciphertext[i] = ((a * (plaintext[i] - 'a') + b) % 26) + 'a';
}
} else {
ciphertext[i] = plaintext[i];
}
}
ciphertext[i] = '\0'; // 添加字符串结尾标志
printf("Ciphertext: %s\n", ciphertext);
return 0;
}
```
这个程序要求用户输入明文和加密密钥 `a` 和 `b`,然后对明文进行加密,输出密文。程序只加密字母,对于其他字符直接复制到密文中。
注意,这是一个简单的仿射密码实现,不是安全的加密算法。在实际使用中,应该选择更强的加密算法来保护敏感信息。
阅读全文