⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kasiski测试.cpp

📁 使用VC++编程语言编写一个系统程序
💻 CPP
字号:
#include <iostream.h>
#include <string.h>
char table[]="abcdefghijklmnopqrstuvwxyz";
char VigeTable[26][26]={'0'};
char CipherText[26]={'0'};
char key[]="toy";
char allkey[100]={'0'};

void InitTable(int linenum, int offset)
{
  for(int k=0;k<26;k++)
    VigeTable[linenum][k]=table[(k+offset)%26];
}
void InitKey(int Length,char allkey[])
{
  for(int m=0;m<Length;m++)
  {
    allkey[m]=key[m%3];
  }
}

int GetLineNum(char c)
{
  for(int i=0;i<26;i++)
  {
    if(table[i]==c)
      return i;
    else continue;
  }
  return -1;
}

int GetPaintextCNum(int LineNum,char c)
{
  for(int j=0;j<26;j++)
  {
    if(VigeTable[LineNum][j]==c)
      return j;
    else continue;
  }
  return -1;
}
void GetPlainText(char CipherText[],int L)
{
  int cnum,Lnum;
  for(int p=0;p<L;p++)
  {
    Lnum=GetLineNum(allkey[p]);
    cnum=GetPaintextCNum(Lnum,CipherText[p]);
    cout<<table[cnum];
  }
  cout<<endl;
}
main()
{
  int L1,L2,i;
  cout<<"CipherText: ";
  cin>>CipherText;
  L1=strlen(CipherText);
  L2=strlen(table);
  for(int t=0;t<L2;t++)
  {
    InitTable(t,t);
  }
  InitKey(L1,allkey);
  cout<<"Key        :";
  for(int n=0;n<L1;n++)
  {
cout<<allkey[n];
  }
  cout<<endl;
  cout<<"PlainText  :";
  GetPlainText(CipherText,L1);
  cout<<"CipherText: ";
  for(int s=0;s<L1;s++)
  {
    cout<<CipherText[s];
  }
  cout<<endl;
}
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -