📄 unit1.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <string.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i,temp[65],shuchu[65];
int ip1[65]={ 40,8,48,16,56,24,64,32,
39,7,47,15,55,23,63,31,
38,6,46,14,54,22,62,30,
37,5,45,13,53,21,61,29,
36,4,44,12,52,20,60,28,
35,3,43,11,51,19,59,27,
34,2,42,10,50,18,58,26,
33,1,41,9,49,17,57,25};
mwtobin();
mytobin();
chushimiyao();
Edit4->Text="";
Edit3->Text="";
f(r0,k1);
for(i=1;i<33;i++)
l1[i]=r0[i];
for(i=1;i<33;i++)
{
r1[i]=l0[i]+c[i];
if(r1[i]==2)
r1[i]=0;
}
f(r1,k2);
for(i=1;i<33;i++)
l2[i]=r1[i];
for(i=1;i<33;i++)
{
r2[i]=l1[i]+c[i];
if(r2[i]==2)
r2[i]=0;
}
f(r2,k3);
for(i=1;i<33;i++)
l3[i]=r2[i];
for(i=1;i<33;i++)
{
r3[i]=l2[i]+c[i];
if(r3[i]==2)
r3[i]=0;
}
f(r3,k4);
for(i=1;i<33;i++)
l4[i]=r3[i];
for(i=1;i<33;i++)
{
r4[i]=l3[i]+c[i];
if(r4[i]==2)
r4[i]=0;
}
f(r4,k5);
for(i=1;i<33;i++)
l5[i]=r4[i];
for(i=1;i<33;i++)
{
r5[i]=l4[i]+c[i];
if(r5[i]==2)
r5[i]=0;
}
f(r5,k6);
for(i=1;i<33;i++)
l6[i]=r5[i];
for(i=1;i<33;i++)
{
r6[i]=l5[i]+c[i];
if(r6[i]==2)
r6[i]=0;
}
f(r6,k7);
for(i=1;i<33;i++)
l7[i]=r6[i];
for(i=1;i<33;i++)
{
r7[i]=l6[i]+c[i];
if(r7[i]==2)
r7[i]=0;
}
f(r7,k8);
for(i=1;i<33;i++)
l8[i]=r7[i];
for(i=1;i<33;i++)
{
r8[i]=l7[i]+c[i];
if(r8[i]==2)
r8[i]=0;
}
f(r8,k9);
for(i=1;i<33;i++)
l9[i]=r8[i];
for(i=1;i<33;i++)
{
r9[i]=l8[i]+c[i];
if(r9[i]==2)
r9[i]=0;
}
f(r9,k10);
for(i=1;i<33;i++)
l10[i]=r9[i];
for(i=1;i<33;i++)
{
r10[i]=l9[i]+c[i];
if(r10[i]==2)
r10[i]=0;
}
f(r10,k11);
for(i=1;i<33;i++)
l11[i]=r10[i];
for(i=1;i<33;i++)
{
r11[i]=l10[i]+c[i];
if(r11[i]==2)
r11[i]=0;
}
f(r11,k12);
for(i=1;i<33;i++)
l12[i]=r11[i];
for(i=1;i<33;i++)
{
r12[i]=l11[i]+c[i];
if(r12[i]==2)
r12[i]=0;
}
f(r12,k13);
for(i=1;i<33;i++)
l13[i]=r12[i];
for(i=1;i<33;i++)
{
r13[i]=l12[i]+c[i];
if(r13[i]==2)
r13[i]=0;
}
f(r13,k14);
for(i=1;i<33;i++)
l14[i]=r13[i];
for(i=1;i<33;i++)
{
r14[i]=l13[i]+c[i];
if(r14[i]==2)
r14[i]=0;
}
f(r14,k15);
for(i=1;i<33;i++)
l15[i]=r14[i];
for(i=1;i<33;i++)
{
r15[i]=l14[i]+c[i];
if(r15[i]==2)
r15[i]=0;
}
f(r15,k16);
for(i=1;i<33;i++)
l16[i]=r15[i];
for(i=1;i<33;i++)
{
r16[i]=l15[i]+c[i];
if(r16[i]==2)
r16[i]=0;
}
for(i=1;i<33;i++)
{
temp[i]=r16[i];
temp[i+32]=l16[i];
}
for(i=1;i<65;i++)
shuchu[i]=temp[ip1[i-1]];
for(i=1;i<65;i++)
Edit3->Text=Edit3->Text+shuchu[i];
}
void __fastcall TForm1::mwtobin()
{
char buff[64];
String mingwen;
int myfile,i,j,sstr[8],mw[65],mw1[65];
char ch,buf[8];
int ip[65]= {58,50,42,34,26,18,10,2,
60,52,44,36,28,20,12,4,
62,54,46,38,30,22,14,6,
64,56,48,40,32,24,16,8,
57,49,41,33,25,17,9,1,
59,51,43,35,27,19,11,3,
61,53,45,37,29,21,13,5,
63,55,47,39,31,23,15,7};
mingwen=Edit1->Text;
myfile=FileOpen("二进制明文.TXT",fmOpenReadWrite|fmShareExclusive);
for(i=1;i<=8;i++)
{
ch=mingwen[i];
for(j=0;j<8;j++)
{
sstr[j]=ch%2;
ch=ch/2;
}
for(j=7;j>=0;j--)
buf[7-j]=sstr[j]+48;
FileWrite(myfile,buf,8);
}
FileClose(myfile);
myfile=FileOpen("二进制明文.TXT",fmOpenReadWrite|fmShareExclusive);
FileRead(myfile,buff,64);
FileClose(myfile);
for(i=1;i<=64;i++)
mw[i]=buff[i-1]-48;
for(i=1;i<=64;i++)
mw1[i]=mw[ip[i-1]];
for(i=1;i<33;i++)
{
l0[i]=mw1[i];
r0[i]=mw1[i+32];
}
}
void __fastcall TForm1::mytobin()
{
String miyao;
int myfile,i,j,sstr[8];
char ch,buf[8];
miyao=Edit2->Text;
myfile=FileOpen("二进制密钥.TXT",fmOpenReadWrite|fmShareExclusive);
for(i=1;i<=8;i++)
{
ch=miyao[i];
for(j=0;j<8;j++)
{
sstr[j]=ch%2;
ch=ch/2;
}
for(j=7;j>=0;j--)
buf[7-j]=sstr[j]+48;
FileWrite(myfile,buf,8);
}
FileClose(myfile);
}
void __fastcall TForm1::chushimiyao()
{
int myfile=FileOpen("二进制密钥.TXT",fmOpenReadWrite|fmShareExclusive);;
char buff[64];
int my[65],my1[65],i,c[57];
int c0[29],d0[29],c1[29],d1[29],c2[29],d2[29],c3[29],d3[29],c4[29],d4[29],c5[29],d5[29],c6[29],d6[29],c7[29],d7[29],c8[29],d8[29],c9[29],d9[29],c10[29],d10[29],c11[29],d11[29],c12[29],d12[29],c13[29],d13[29],c14[29],d14[29],c15[29],d15[29],c16[29],d16[29];
int pc1[57]={57,49,41,33,25,17,9,
1,58,50,42,34,26,18,
10,2,59,51,43,35,27,
19,11,3,60,52,44,36,
63,55,47,39,31,23,15,
7,62,54,46,38,30,22,
14,6,61,53,45,37,29,
21,13,5,28,20,12,4};
int pc2[49]={14,17,11,24,1,5,
3,28,15,6,21,10,
23,19,12,4,26,8,
16,7,27,20,13,2,
41,52,31,37,47,55,
30,40,51,45,33,48,
44,49,39,56,34,53,
46,42,50,36,29,32};
FileRead(myfile,buff,64);
FileClose(myfile);
for(i=1;i<=64;i++)
{
my[i]=buff[i-1]-48;
}
for(i=1;i<57;i++)
my1[i]=my[pc1[i-1]];
for(i=1;i<29;i++)
{
c0[i]=my1[i];
d0[i]=my1[i+28];
}
for(i=1;i<29;i++)
{ c1[i]=c0[i+1];
d1[i]=d0[i+1];}
c1[28]=c0[1];
d1[28]=d0[1];
for(i=1;i<29;i++)
{
c[i]=c1[i];
c[i+28]=d1[i];
}
for(i=1;i<49;i++)
k1[i]=c[pc2[i-1]];
for(i=1;i<28;i++)
{
c2[i]=c1[i+1];
d2[i]=d1[i+1];
}
c2[28]=c1[1];
d2[28]=d1[1];
for(i=1;i<=28;i++)
{
c[i]=c2[i];
c[i+28]=d2[i];
}
for(i=1;i<=48;i++)
k2[i]=c[pc2[i-1]];
for(i=1;i<27;i++)
{
c3[i]=c2[i+2];
d3[i]=d2[i+2];
}
c3[27]=c2[1];
d3[27]=d2[1];
c3[28]=c2[2];
d3[28]=d2[2];
for(i=1;i<=28;i++)
{
c[i]=c3[i];
c[i+28]=d3[i];
}
for(i=1;i<=48;i++)
k3[i]=c[pc2[i-1]];
for(i=1;i<27;i++)
{
c4[i]=c3[i+2];
d4[i]=d3[i+2];
}
c4[27]=c3[1];
d4[27]=d3[1];
c4[28]=c3[2];
d4[28]=d3[2];
for(i=1;i<=28;i++)
{
c[i]=c4[i];
c[i+28]=d4[i];
}
for(i=1;i<=48;i++)
k4[i]=c[pc2[i-1]];
for(i=1;i<27;i++)
{
c5[i]=c4[i+2];
d5[i]=d4[i+2];
}
c5[27]=c4[1];
d5[27]=d4[1];
c5[28]=c4[2];
d5[28]=d4[2];
for(i=1;i<=28;i++)
{
c[i]=c5[i];
c[i+28]=d5[i];
}
for(i=1;i<=48;i++)
k5[i]=c[pc2[i-1]];
for(i=1;i<27;i++)
{
c6[i]=c5[i+2];
d6[i]=d5[i+2];
}
c6[27]=c5[1];
d6[27]=d5[1];
c6[28]=c5[2];
d6[28]=d5[2];
for(i=1;i<=28;i++)
{
c[i]=c6[i];
c[i+28]=d6[i];
}
for(i=1;i<=48;i++)
k6[i]=c[pc2[i-1]];
for(i=1;i<27;i++)
{
c7[i]=c6[i+2];
d7[i]=d6[i+2];
}
c7[27]=c6[1];
d7[27]=d6[1];
c7[28]=c6[2];
d7[28]=d6[2];
for(i=1;i<=28;i++)
{
c[i]=c7[i];
c[i+28]=d7[i];
}
for(i=1;i<=48;i++)
k7[i]=c[pc2[i-1]];
for(i=1;i<27;i++)
{
c8[i]=c7[i+2];
d8[i]=d7[i+2];
}
c8[27]=c7[1];
d8[27]=d7[1];
c8[28]=c7[2];
d8[28]=d7[2];
for(i=1;i<=28;i++)
{
c[i]=c8[i];
c[i+28]=d8[i];
}
for(i=1;i<=48;i++)
k8[i]=c[pc2[i-1]];
for(i=1;i<28;i++)
{
c9[i]=c8[i+1];
d9[i]=d8[i+1];
}
c9[28]=c8[1];
d9[28]=d8[1];
for(i=1;i<=28;i++)
{
c[i]=c9[i];
c[i+28]=d9[i];
}
for(i=1;i<=48;i++)
k9[i]=c[pc2[i-1]];
for(i=1;i<27;i++)
{
c10[i]=c9[i+2];
d10[i]=d9[i+2];
}
c10[27]=c9[1];
d10[27]=d9[1];
c10[28]=c9[2];
d10[28]=d9[2];
for(i=1;i<=28;i++)
{
c[i]=c10[i];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -