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クラッシュは、この例のために、具体的に:1つのプログラムでXORでファイルをエンコードしてデコードする
はFile1:
ţýüűúůř÷öőôóňńđďîíěëęéčçćĺäăâáŕßŢÝÜŰÚŮŘ×ÖŐÔÓŇŃĐĎÎÍĚËĘÉČÇĆĹÄĂÂÁŔżľ˝Ľ»SA・¶μ'ł˛±°Z "〜"〜 "〜"〜 "〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 ;:/.-,+*)( '&%$# "!
ファイル3 :
ţýüűúůř÷öőôóňńđďîíěëęéčçćĺäăâáŕßŢÝÜŰÚŮŘ×ÖŐÔÓŇŃĐĎÎÍĚËĘÉČÇĆĹÄĂÂÁŔżľ˝Ľ»SA・¶μ'ł˛±°Ż®¬«Ş©¨§|Ą¤Ł˘źžťś>š™ - •」「 '' ŹŽŤŚ
これは動作しますが、なぜそれがテキストモードでなかったのか分かりません:( – 0x6B6F77616C74
@kutacz私が言ったように、システムは変換を実行します。例えば、改行文字をシステムで使用するものに変換します。暗号化のためにバイナリデータを扱っているときには起こりたくありません。 –