加密过程
y=k1x+k2(mod26)
解密过程
x=_k1(y-k2)(mod26)
_k1为k1的乘法逆元,因为有26这个范围,而且逆元唯一,所以可直接脑残试出_k1的值
具体实现:
读文本文件"in.txt"进行加密,结果放到"encode.txt"中,同时进行解密,结果放在"decode.txt"中
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <fstream>
#include <math.h>
#include <time.h>
using namespace std;
int k1[12]={1,3,5,7,9,11,15,17,19,21,23,25},k2, _k1;
int index;
char temp;
char ans;
int gcd(int a,int b)
{
int temp;
if(a<b)
{
temp=a;
a=b;
b=temp;
}
int r=1;
while(r)
{
r=a%b;
a=b;
b=r;
}
return a;
}
void chengfaniyuan()
{
int i;
for(i=1; i<26; i++)
{
if((k1[index]*i)%26==1)
{