欢迎来到天天文库
浏览记录
ID:14337204
大小:45.50 KB
页数:17页
时间:2018-07-28
《信息安全排列码源代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、信息安全排列码源代码/*n=4的排列码源程序c++编写201222102018贾晓菲:*/#include#include#includeusingnamespacestd;intreverse(int);//取反函数voidencode();//加密函数voiddecode();//解密函数inta[8],c[8],d[16],e[8],f[4],remainder;//主函数intmain(){charbite0,bite1,bite4,bite5,key0[
2、4],key[12],zkey[12];charfile_name1[200],file_name2[200],file_name3[200],file_name4[200];inti,j,k,zijie2=0,zijie3=0;charchoose;cout<<"选择相应操作"<3、out<<"";cin>>choose;//加密过程if(choose=='a'){cout<<"请输入带加密文件的全路径:"<>file_name1;cout<<"请输入密文保存的路径"<>file_name2;ifstreamfs0(file_name1,ios::binary);if(!fs0){cout<<"文件错误"<4、){cout<<"文件错误"<>key0;while(fs0.get(bite0)){for(i=0;i<8;i++){c[i]=bite0&1;bite0=bite0>>1;}for(k=0;k<12;k++)key[k]=key0[(k+4)/4];for(j=0;j<12;j++)zkey[j]=key[j];for(i=0;i<10;i=i+3){//模24取余remainder=key[0+i]%24;//看哪一路径需5、要取反,前八条路径for(j=0;j<8;j++){d[j]=key[1+i]&1;key[1+i]=key[1+i]>>1;}//后八条路径for(j=8;j<16;j++){d[j]=key[2+i]&1;key[2+i]=key[2+i]>>1;}encode();for(j=0;j<4;j++)e[j]=a[j];for(j=0;j<4;j++)c[j]=c[j+4];encode();for(j=0;j<4;j++)e[j+4]=a[j];for(j=0;j<8;j++)c[j]=e[j];}for(j=7;j6、>=0;j--){zijie2=zijie2<<1;zijie2=zijie27、c[j];}bite4=char(zijie2);fs1.put(bite4);for(j=0;j<12;j++)key[j]=zkey[j];}fs0.close();fs1.close();//cout<<"======================================"<>fil8、e_name3;cout<<"请输入解密后文件的保存全路径"<>file_name4;ifstreamfs2(file_name3,ios::binary);if(!fs2){cout<<"文件错误!"<>key0;//cout<<"9、"<>1;}for(k=0;k<12;k++)key[k]=key0[(k+4)/4];for(j=0;j<12;j++)zkey[j]=key[j];for(i=9;i
3、out<<"";cin>>choose;//加密过程if(choose=='a'){cout<<"请输入带加密文件的全路径:"<>file_name1;cout<<"请输入密文保存的路径"<>file_name2;ifstreamfs0(file_name1,ios::binary);if(!fs0){cout<<"文件错误"<4、){cout<<"文件错误"<>key0;while(fs0.get(bite0)){for(i=0;i<8;i++){c[i]=bite0&1;bite0=bite0>>1;}for(k=0;k<12;k++)key[k]=key0[(k+4)/4];for(j=0;j<12;j++)zkey[j]=key[j];for(i=0;i<10;i=i+3){//模24取余remainder=key[0+i]%24;//看哪一路径需5、要取反,前八条路径for(j=0;j<8;j++){d[j]=key[1+i]&1;key[1+i]=key[1+i]>>1;}//后八条路径for(j=8;j<16;j++){d[j]=key[2+i]&1;key[2+i]=key[2+i]>>1;}encode();for(j=0;j<4;j++)e[j]=a[j];for(j=0;j<4;j++)c[j]=c[j+4];encode();for(j=0;j<4;j++)e[j+4]=a[j];for(j=0;j<8;j++)c[j]=e[j];}for(j=7;j6、>=0;j--){zijie2=zijie2<<1;zijie2=zijie27、c[j];}bite4=char(zijie2);fs1.put(bite4);for(j=0;j<12;j++)key[j]=zkey[j];}fs0.close();fs1.close();//cout<<"======================================"<>fil8、e_name3;cout<<"请输入解密后文件的保存全路径"<>file_name4;ifstreamfs2(file_name3,ios::binary);if(!fs2){cout<<"文件错误!"<>key0;//cout<<"9、"<>1;}for(k=0;k<12;k++)key[k]=key0[(k+4)/4];for(j=0;j<12;j++)zkey[j]=key[j];for(i=9;i
4、){cout<<"文件错误"<>key0;while(fs0.get(bite0)){for(i=0;i<8;i++){c[i]=bite0&1;bite0=bite0>>1;}for(k=0;k<12;k++)key[k]=key0[(k+4)/4];for(j=0;j<12;j++)zkey[j]=key[j];for(i=0;i<10;i=i+3){//模24取余remainder=key[0+i]%24;//看哪一路径需
5、要取反,前八条路径for(j=0;j<8;j++){d[j]=key[1+i]&1;key[1+i]=key[1+i]>>1;}//后八条路径for(j=8;j<16;j++){d[j]=key[2+i]&1;key[2+i]=key[2+i]>>1;}encode();for(j=0;j<4;j++)e[j]=a[j];for(j=0;j<4;j++)c[j]=c[j+4];encode();for(j=0;j<4;j++)e[j+4]=a[j];for(j=0;j<8;j++)c[j]=e[j];}for(j=7;j
6、>=0;j--){zijie2=zijie2<<1;zijie2=zijie2
7、c[j];}bite4=char(zijie2);fs1.put(bite4);for(j=0;j<12;j++)key[j]=zkey[j];}fs0.close();fs1.close();//cout<<"======================================"<>fil
8、e_name3;cout<<"请输入解密后文件的保存全路径"<>file_name4;ifstreamfs2(file_name3,ios::binary);if(!fs2){cout<<"文件错误!"<>key0;//cout<<"
9、"<>1;}for(k=0;k<12;k++)key[k]=key0[(k+4)/4];for(j=0;j<12;j++)zkey[j]=key[j];for(i=9;i
此文档下载收益归作者所有