📄 key.cpp
字号:
////////////////////////////////////////////// FileName: key.cpp // Creator: Du Feilong// Date: 2007-10-11// Comment: Create key//////////////////////////////////////////// #include<iostream>#include<fstream>#include<string>using namespace std;int StartKey[64];int key0[56],key1[56],key2[56],key3[56],key4[56]; int LS[4]={1,1,2,2};int C0[28],D0[28],C1[28],D1[28],C2[28],D2[28],C3[28],D3[28],C4[28],D4[28];int KeyIPC[56]={ 56,48,40,32,24,16,8,0,57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,60,52,44,36,28,20,12,4,27,19,11,3};int KeyPC[48]={13,16,10,23,0,4,2,27,14,5,20,9,22,18,11,3, 25 ,7,15,6,26,19,12,1,40,51,30,36,46,54,29,39, 50,44,32,47,43,48,38,55,33,52,45,41,49,35,28,31}; void StartKeyget() { for(int i=0;i<64;i++) StartKey[i]=0; cout<<"enter your key(8 characters)"<<endl; char n[8]; getchar(); for(int i=0;i<8;i++) n[i]=getchar(); int k=0; while(k<8){ for(int i=7;i>=0;i--){ StartKey[k*8+i]=n[k]&1; n[k]=n[k]>>1; } k++; }}void keyconversion1(){ int i; for(i=0;i<56;i++) key0[i]=StartKey[KeyIPC[i]];}void keydivide(){ int i; for(i=0;i<28;i++) C0[i]=key0[i]; for(i=28;i<56;i++) D0[i-28]=key0[i];}void shift(int *cp,int *dp,int *c,int *d,int m){ int i; for(i=0;i<28;i++){ c[i]=cp[(i+m)%28]; d[i]=dp[(i+m)%28]; }}void keyconversion2(int *k,int *K){ int i; for(i=0;i<56;i++) K[i]=k[KeyPC[i]];}void connect(int *c,int *d,int *k,int *K){ int i; for(i=0;i<28;i++) k[i]=c[i]; for(i=28;i<56;i++) k[i]=d[i-28]; keyconversion2(k,K);}void displaykey(int *k){ int i; for(i=0;i<56;i++){ if(i%28==0&&i!=0) cout<<endl; cout<<k[i]<<" "; } cout<<endl;}void displayKey(int *K){ int i; for(i=0;i<48;i++){ if(i%16==0&&i!=0) cout<<endl; cout<<K[i]<<" "; } cout<<endl;} void createkey(int *Key1,int *Key2,int *Key3,int *Key4){ StartKeyget(); keyconversion1(); keydivide(); shift(C0,D0,C1,D1,LS[0]); connect(C1,D1,key1,Key1); shift(C1,D1,C2,D2,LS[1]); connect(C2,D2,key2,Key2); shift(C2,D2,C3,D3,LS[2]); connect(C3,D3,key3,Key3); shift(C3,D3,C4,D4,LS[3]); connect(C4,D4,key4,Key4);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -