替代密码算法c语言
时间: 2023-07-26 08:10:16 浏览: 104
替代密码算法是一种基于置换和替换的加密算法,常见的有凯撒密码、栅栏密码、摩尔斯电码等。以下是一个简单的栅栏密码的C语言实现示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
void encrypt(char *input, int key) {
int len = strlen(input);
char cipher[MAX_LEN] = {0};
for (int i = 0; i < key; i++) {
for (int j = i; j < len; j += key) {
cipher[strlen(cipher)] = input[j];
}
}
printf("Cipher text: %s\n", cipher);
}
void decrypt(char *input, int key) {
int len = strlen(input);
char plain[MAX_LEN] = {0};
int index = 0;
for (int i = 0; i < key; i++) {
for (int j = i; j < len; j += key) {
plain[j] = input[index++];
}
}
printf("Plain text: %s\n", plain);
}
int main() {
char input[MAX_LEN];
int key;
printf("Enter the plain text: ");
fgets(input, MAX_LEN, stdin);
input[strcspn(input, "\n")] = 0;
printf("Enter the key: ");
scanf("%d", &key);
encrypt(input, key);
decrypt(input, key);
return 0;
}
```
该程序接受用户输入的字符串和密钥,对输入的字符串进行栅栏加密和解密,并输出结果。需要注意的是,该程序只是一个简单的示例,实际使用中需要考虑更多的安全性和灵活性问题。
阅读全文