C语言 异或加密

来源:互联网 发布:钱龙软件怎么样 编辑:程序博客网 时间:2024/06/06 03:03

文件加密解密
将文件file1中的每一字符与0x6a异或变成另一个字符送屏幕显示,同时存入文件file2中。打开加密的file2输出解密内容。

file1文件内容是:This is a book.
路径为:d:\file1.txt
d:\file2.txt

(请从命令行输入)
特别提示:
1.异或的C语言描述方式
a=a^b 书P330(a和b异或后值赋给a)
2.a和b异或的结果再与b相异或则a还原。
3.0x6a是16进制,可直接赋值给int b=0x6a;然后用b与a进行异或。

常见的算法如下:包含stdio头文件
void main()
{
FILE *in, *out;
char *in_file, *out_file;
char ch;
printf(” input in file name:\n”);
gets(in_file);
printf(” input out file name:\n”);
gets(out_file);
in = fopen( in_file, “rb”); /以二进制只读方式打开/
out = fopen( out_file, “wb”);
if( in == NULL || out == NULL ) exit(1);
ch = fgetc(in);
while( ch != -1 ) /若文件没有结束/
{
ch = ch^1; /异或运算/
fputc( ch, out ); /将异或结果放入输出文件中/
ch = fgetc(in);
}
fclose(in);
fclose(out);
}