希尔密码用一个矩阵加密,用它的逆矩阵解密。
明文放在"in.txt"中
程序进入先输入n的值,然后输入n阶矩阵
接下来输入1加密,结果放在"encode.txt"中
重启程序输入相同n和矩阵后,输入2解密,结果放在"decode.txt"中
因为是按字节读取加密解密,所以可以处理任何格式的文件,解密后自行修改文件后缀即可恢复运行
#include <iostream>
#include <string.h>
#include <cstdlib>
#include <fstream>
#define N 256
using namespace std;
//求矩阵matrix[][]的行列式值
int hanglieshi(int matrix[][10],int n)
{
int i,j,k;
int ans=0;
if(n==1)return matrix[0][0];
int matrix_temp[10][10];
for(j=0; j<n; j++)
{
int p=0,q=0;
//matrix_temp[][] to store the A ij of the element in the first row.
for(i=1; i<n; i++)
{
for(k=0; k<n; k++)
{
if(k==j)continue;
matrix_temp[p][q]=matrix[i][k];