欢迎大家的评论和指导。算法请参考: http://en.wikipedia.org/wiki/Playfair_cipher
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define ENCRYPT 1
#define DECRYPT -1
// See in: The Cert C Secure Coding Standard
#define STRING(n) STRING_AGAIN(n)
#define STRING_AGAIN(n) #n
#define CHARS_TO_READ 100
FILE *fpSrc = NULL;
FILE *fpDest = NULL;
void flushbuf();
void getkeymatrix(char (*)[5], char *); // 通过输入的密钥生成一个密钥矩阵
void printmatrix(char (*)[5]);
int encrypt(char (*)[5]); // 加密函数
int decrypt(char (*)[5]); // 解密函数
void check(char *, char (*)[5], int); // 查找一对字母在密钥矩阵中对应的字母对
int main(void)
{
int choice;
char key[CHARS_TO_READ + 1];
char srcfile[CHARS_TO_READ + 1];
char destfile[CHARS_TO_READ + 1];
char keymatrix[5][5];
memset(key, 0, CHARS_TO_READ + 1);
memset(srcfile, 0, CHARS_TO_READ + 1);
memset(destfile, 0, CHARS_TO_READ + 1);
memset(keymatrix, 0, 25);
printf("===============/n"
"Please select:/n"
"1.Encrypt/n"
"2.Decrypt/n"
"0.Exit/n"
"Caution: This Program can only apply to ASCII file./n"
"===============/n");
do {
Playfair密码(波雷费密码)的C语言实现
最新推荐文章于 2022-03-10 09:08:06 发布
这是一个使用C语言实现Playfair密码加密和解密的程序。程序首先读取用户输入的密钥和文件路径,然后根据密钥生成一个密钥矩阵。用户可以选择对文件进行加密或解密操作。程序跳过了ASCII文件中的非字母字符,并且在字母对相同的情况下插入'X'。加密时,同行右移,同列下移;解密则相反。
摘要由CSDN通过智能技术生成