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就像我說的,系統執行轉換(例如,它將轉換換行符爲您的系統使用)當您使用二進制數據進行加密時,不希望發生這種情況。 –