当前位置: 代码迷 >> C语言 >> [求助]新手第一问,这个应该怎么做
  详细解决方案

[求助]新手第一问,这个应该怎么做

热度:370   发布时间:2006-09-19 19:41:38.0
[求助]新手第一问,这个应该怎么做

一篇英文文章 在e:\en.txt
其内容为
this is a book.

我想采用异或255加密

因为我发现

比如说 a 的ascii码是97
二进制就是01100001 用它异或255
01100001
11111111

=10011110

上面是我想的加密过程

解密也一样
10011110
11111111
=01100001

这样就得到原来的了

请你们帮我用C的文件指针把这个过程完成一下

加密后的结果保存到e:\mima.txt

下面是我试写的

#include "stdio.h"

void main()
{char ch;
FILE *fp,*fm; /*fp用来标记源文件,fm用来标记加(解)密文件*/
fp=fopen("e:\\en.txt","rt");
fm=fopen("e:\\mima.txt","wt+");

while ((ch=fgetc(fp))!=EOF)
{
ch=ch^255; /*用原来的字符异或255来加解密*/
fputc(ch,fm); /*把加密后的字符保存到文件指针fm所指向的文件*/
}

fclose(fp);
fclose(fm);

}


我边看书找资料边做没想到自己也能完成.

试了下能加密解密.

不过请C区的朋友们说说这个程序还应该注意什么,有什么缺陷


还有什么加密的好办法呢?

[此贴子已经被作者于2006-9-19 19:44:08编辑过]

搜索更多相关的解决方案: 二进制  include  英文文章  加密  

----------------解决方案--------------------------------------------------------

我试了下,还支持中文,呵呵
document.body.clientWidth*0.5) {this.resized=true;this.width=document.body.clientWidth*0.5;this.style.cursor='pointer';} else {this.onclick=null}" alt="" />
上面是原来的文本.


document.body.clientWidth*0.5) {this.resized=true;this.width=document.body.clientWidth*0.5;this.style.cursor='pointer';} else {this.onclick=null}" alt="" />

加密后的文本.


document.body.clientWidth*0.5) {this.resized=true;this.width=document.body.clientWidth*0.5;this.style.cursor='pointer';} else {this.onclick=null}" alt="" />
解密后跟原文本一样.

呵呵,


----------------解决方案--------------------------------------------------------
你就不能换点别的词加密解密,知道也不告诉你啊
----------------解决方案--------------------------------------------------------
能改点好听的词吗??
----------------解决方案--------------------------------------------------------
我也是新手,我怎么不会这个啊~~
----------------解决方案--------------------------------------------------------
以下是引用cnrainboy在2006-9-19 20:06:24的发言:
能改点好听的词吗??

对不起,心情不好所以才用词没注意
之所以想到加密文本文件,是因为我以前写了一篇留级保证书

发到了灌水区,大家都看到了.

很不好意思(我很害羞)

所以就想把内容加密后再发
这样至少有点保障(保护俺的隐私)呀

自己用时用程序再解密一下就行了


唉,留级生,真不舒服

[此贴子已经被作者于2006-9-19 21:23:45编辑过]


----------------解决方案--------------------------------------------------------

#include "stdio.h"

int main()
{char ch,source[40],aim[40];
FILE *fp,*fm; /*fp用来标记源文件,fm用来标记加(解)密文件*/
clrscr();
puts("qing shu ru jia\\jie mi wen jian de lu jin.\nru: c:\\en.txt");
/*请输入加\解密文件的路径:*/
gets(source);
puts("qing shu ru jia\\jie mi yi hou de wen jian de lu jin:\nru: c:\\mima.txt");
/*请输入加\解密后的文件的路径:*/
gets(aim); /*gets不支持\转义自符*/

fp=fopen(source,"rt");
fm=fopen(aim,"wt+");

if (fp==NULL || fm==NULL)
{ printf("\nCannot open file strike any key exit!");
getch();
exit(1);
}

while ((ch=fgetc(fp))!=EOF)
{
ch=ch^255; /*用原来的字符异或255来加解密*/
fputc(ch,fm);
}

fclose(fp);
fclose(fm);
getch();

}



上面是修改后的文件,支持用户输入路径.

[此贴子已经被作者于2006-9-20 21:02:16编辑过]


----------------解决方案--------------------------------------------------------

灌就一个字.话不说2次
----------------解决方案--------------------------------------------------------
恭喜LZ重新做人拉
----------------解决方案--------------------------------------------------------
以下是引用cdmalcl在2006-9-19 21:58:27的发言:
恭喜LZ重新做人拉


----------------解决方案--------------------------------------------------------
  相关解决方案