0
#include <stdio.h>
#include <string.h>
#include <cstdlib>
const int KEY=118;
int main()
{
FILE* hOFile = fopen("file1","w");
FILE* hIFile;
char sign;
for(int i=254; i>=0; i--)
fprintf(hOFile,"%c",i);
fclose(hOFile);
hIFile = fopen("file1","r");
hOFile = fopen("file2","w");
for(int i=254; i>=0; i--)
{
fscanf(hIFile,"%c",&sign);
fprintf(hOFile,"%c",(sign^KEY));
}
fclose(hIFile);
fclose(hOFile);
hIFile=fopen("file2","r");
hOFile=fopen("file3","w");
for(int i=254; i>=0; i--)
{
fscanf(hIFile,"%c",&sign);
fprintf(hOFile,"%c",(sign^KEY));
}
fclose(hIFile);
fclose(hOFile);
}
我的意思是file3与file1相同。不幸的是,ASCII KEY-9 character.To后file3的崩溃具体地,在这个例子中:使用XOR在一个程序中对文件进行编码和解码
File1中:
ţýüűúůř÷öőôóňńđďîíěëęéčçćĺäăâáŕßŢÝÜŰÚŮŘ×ÖŐÔÓŇŃĐĎÎÍĚËĘÉČÇĆĹÄĂÂÁŔżľ˝Ľ»SA·¶μ'ł˛±°Z →«»«»«'''ŹŽŤŚ†‡†...“,€〜} | {zyxwvutsrqponmlkjihgfedcba` _ ^] [ZYXWVUTSRQPONMLKJIHGFEDCBA @?> = < ;:/.-,+*)('&%$#“!
File3 :
ţýüűúůř÷öőôóňńđďîíěëęéčçćĺäăâáŕßŢÝÜŰÚŮŘ×ÖŐÔÓŇŃĐĎÎÍĚËĘÉČÇĆĹÄĂÂÁŔżľ˝Ľ»SA·¶μ'ł˛±°Ż®¬«Ş©¨§|Ą¤Ł˘źžťś> S™ - •”“ '' ŹŽŤŚ
它的工作原理,但我不知道它为什么没有在文本模式:( – 0x6B6F77616C74
@ kutacz就像我说的,系统执行转换(例如,它将转换换行符为您的系统使用)当您使用二进制数据进行加密时,不希望发生这种情况。 –