資源簡介

代碼片段和文件信息
#include?
#include?
#include?
using?namespace?std;
#include?
int?K1[49]K2[49]K3[49]K4[49]K5[49]K6[49]K7[49]K8[49]K9[49]K10[49]K11[49]K12[49]K13[49]K14[49]K15[49]K16[49];
int?R0[33]L0[33]t1[65]m[65]k[65];
void?Encode(void);
void?Decode(void);
void?initial(void);
void?desEncode(void);
void?desDecode(void);
void?main()
{
Encode();
Decode();
}
void?Encode(void)
{
FILE?*fp1*fp2*fp3;
unsigned?char?temp[8];
int?hijstr[8]flag=0;
char?ch;
string?fp1n;
// fp1=fopen(“001.bmp““rb“);
cout<<“Input?the?name?of?the?file?you?want?to?encode.“< cin>>fp1n;
fp1=fopen(fp1n.c_str()“rb“);
fp2=fopen(“key.txt““rb“);
fp3=fopen(“cipher.bmp““wb“);
for(i=0;i<8;i++)?????//make?k
{
ch=fgetc(fp2);
for(j=0;j<8;j++)
{
temp[j]=ch%2;
ch=ch/2;
}
j=i*8;
j++;
for(h=7;h>=0;h--j++)
{
k[j]=temp[h];
}
}
for(i=1;i<36;i++)
{
for(j=0;j<4;j++)
{
temp[0]=fgetc(fp1);
fputc(temp[0]fp3);
}
}
while(!flag)
{
for(i=0;i<8;i++)
{
if(!feof(fp1))
{
temp[i]=fgetc(fp1);
}
else
{
flag=1;
break;
}
}
if(flag)???????//Bu?Qi?8?Byte
{
for(;i<8;i++)
{
temp[i]=0;
}
}
for(i=0;i<8;i++)????????????//make?m
{
for(j=0;j<8;j++)
{
str[j]=temp[i]%2;
temp[i]=temp[i]/2;
}
h=i*8;
h++;
for(j=7;j>=0;j--h++)
{
m[h]=str[j];
}
}
initial();
desEncode();
for(i=0;i<=7;i++)
{
temp[i]=0;
for(j=8;j>=1;j--)
{
temp[i]=temp[i]+t1[i*8+j]*(int)pow(28-j);
}
fputc(temp[i]fp3);
}
}
fclose(fp1);
fclose(fp2);
fclose(fp3);
}
void?Decode(void)
{
FILE?*fp1*fp2*fp3;
unsigned?char?temp[8];
int?hijstr[8]flag=0;
char?ch;
fp1=fopen(“cipher.bmp““rb“);
fp2=fopen(“key.txt““rb“);
fp3=fopen(“plain.bmp““wb“);
for(i=0;i<8;i++)?????//make?k
{
ch=fgetc(fp2);
for(j=0;j<8;j++)
{
temp[j]=ch%2;
ch=ch/2;
}
j=i*8;
j++;
for(h=7;h>=0;h--j++)
{
k[j]=temp[h];
}
}
for(i=1;i<36;i++)
{
for(j=0;j<4;j++)
{
temp[0]=fgetc(fp1);
fputc(temp[0]fp3);
}
}
while(!flag)
{
for(i=0;i<8;i++)
{
if(!feof(fp1))
{
temp[i]=fgetc(fp1);
}
else
{
flag=1;
break;
}
}
if(flag)???????//Bu?Qi?8?Byte
{
for(;i<8;i++)
{
temp[i]=0;
}
}
for(i=0;i<8;i++)????????????//make?t1[]
{
for(j=0;j<8;j++)
{
str[j]=temp[i]%2;
temp[i]=temp[i]/2;
}
h=i*8;
h++;
for(j=7;j>=0;j--h++)
{
t1[h]=str[j];
}
}
initial();
desDecode();
for(i=0;i<=7;i++)
{
for(j=8;j>=1;j--)
{
temp[i]=temp[i]+t1[i*8+j]*(int)pow(28-j);
}
fputc(temp[i]fp3);
}
}
fclose(fp1);
fclose(fp2);
fclose(fp3);
}
void?initial(void)//生成明文的IP和密鑰的16個子密鑰
{
int?m1[65]ik0[57]C[57];
int?C0[29]D0[29
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????.......??????3377??2007-11-07?20:52??ECB\work.dsp
????.......?????50176??2007-11-14?20:15??ECB\work.ncb
????.......???????834??2007-11-11?08:21??ECB\work.plg
????.......???????533??2007-11-07?21:50??ECB\work.dsw
????.......?????????8??2007-11-14?10:08??ECB\key.txt
????.......?????????8??2007-11-08?20:40??ECB\head.txt
????.......?????20548??2007-11-14?20:15??ECB\plain.bmp
????....SH.?????31744??2007-11-14?20:18??ECB\Thumbs.db
????.......?????58434??2007-11-11?08:21??ECB\work.cpp
????.......?????20540??2007-11-14?20:15??ECB\cipher.bmp
????.......?????20538??2007-09-06?07:54??ECB\1.bmp
????.......?????54784??2007-11-14?20:15??ECB\work.opt
?????目錄??????????0??2007-11-14?19:35??ECB
-----------?---------??----------?-----??----
???????????????261524????????????????????13
- 上一篇:傳智播客c/c++教程
- 下一篇:MFC單文檔程序連接Access數據庫
評論
共有 條評論