用C语言编写多表代换密码的加密解密
时间: 2024-05-12 19:16:42 浏览: 8
多表代换密码是一种常见的加密解密方式,其中通过将每个明文字符映射到一个密文字符来实现加密。同时,解密可以通过将每个密文字符映射回相应的明文字符来完成。以下是一个用C语言编写多表代换密码的加密解密的示例代码:
```c
#include<stdio.h>
#include<string.h>
// 加密
char *encrypt(char *plain, char *key) {
int len = strlen(plain);
char *cipher = new char[len + 1];
memset(cipher, 0, len + 1);
for (int i = 0; i < len; i++) {
int idx = plain[i] - 'a';
cipher[i] = key[idx];
}
return cipher;
}
// 解密
char *decrypt(char *cipher, char *key) {
int len = strlen(cipher);
char *plain = new char[len + 1];
memset(plain, 0, len + 1);
for (int i = 0; i < len; i++) {
int idx = strchr(key, cipher[i]) - key;
plain[i] = 'a' + idx;
}
return plain;
}
int main() {
// 原文
char plain[] = "hello";
// 密钥
char key[] = "iupacjqlmnbhokvwxyfdsergz";
// 加密
char *cipher = encrypt(plain, key);
printf("cipher: %s\n", cipher);
// 解密
char *test = decrypt(cipher, key);
printf("test: %s\n", test);
return 0;
}
```
在上述代码中,我们先定义了加密和解密的函数,接着定义了一个示例加密的明文和密钥,调用加密函数对明文进行加密,然后调用解密函数对密文进行解密。最终输出解密后的明文。
以上代码仅供参考,实际使用时需要自己根据具体需求进行修改。