求救!解密出现乱码!
#include "stdio.h"#include "string.h"
#include "conio.h"
void txtview();
char *code(char A,char B,char C,char D,char str[]);
char *code(char A,char B,char C,char D,char str[])
{
int i,j,k,y;
char *p;
for(i=0;i<20;i++)
{
for(j=0;j<20;j++)
{
for(k=0;k<20;k++)
{
for(y=0;y<20;y++)
{
str[y]=str[y]^A;
}
str[k]=str[k]^B;
}
str[j]=str[j]^C;
}
str[i]=str[i]^D;
}
p=str;
return p;
}
void txtview()
{
FILE *fp;
char ch;int a=1;
if((fp=fopen("D:\\code.txt","r"))==NULL)
{
printf("D:\\\\code.txt不能打开!\n");
exit(1);
}
printf("横线中数字代表横线上语句.\n");
printf("输出code.txt:\n");
ch=fgetc(fp);
while(ch!=EOF)
{
if(ch=='\n')
{
printf("\n----------------------------------------------------------------%d",a);
a++;
}
putchar(ch);
ch=fgetc(fp);
}
printf("\n----------------------------------------------------------------%d\n",a);
}
void main()
{
char input[21],ch,*p;
char a1,b1,c1,d1;
FILE *inputt;
FILE *outputt;
printf("Copyright 2009-2010 by Genius Wang!\n\n\n");
printf("创建密文或解密问?C/J\n");
ch=getchar();
if(ch=='c'||ch=='C')
{
printf("欢迎创建密文\n");
printf("请把加密的文件放到D:\\中并改名为code.txt\n");
getch();
if((inputt=fopen("D:\\code.txt","r"))==NULL)
{
printf("找不到D:\\code.txt,请确认文件存在!\n");
getch();
exit(1);
}
printf("确认文件\n");
getch();
txtview();
printf("文件确认完成!请输入4个密匙(无需空格,回车)");
scanf("%c%c%c%c",&a1,&b1,&c1,&d1);
printf("\n\n\n准备加密...\n\n\n");
printf("\n\n\n创建密文文件...\n\n\n");
if((outputt=fopen("D:\\security.dat","wb"))==NULL)
{
printf("无法创建密文文件!\n");
getch();
exit(1);
}
fgets(input,20,inputt);
p=code(a1,b1,c1,d1,input);
printf("%s\n",p);
fwrite(p,20,1,outputt);
while(!feof(inputt))
{
fgets(input,20,inputt);
p=code(a1,b1,c1,d1,input);
printf("%s",p);
fwrite(p,20,1,outputt);
}
printf("\n\n加密完成!\n\n");
printf("感谢使用!\n");
fclose(inputt);
fclose(outputt);
getch();
exit(1);
}
else if(ch=='j'||ch=='J')
{
printf("Copyright 2009-2010 by Genius Wang!\n\n\n");
printf("欢迎解密!\n");
printf("请将密文文件放至D:\\并改名为security.dat\n");
do
{
printf("请按顺序输入4个密匙(无需空格,回车)\n");
scanf("%c%c%c%c",&a1,&b1,&c1,&d1);
if((inputt=fopen("D:\\security.dat","rb"))==NULL)
{
printf("请确认密文文件存在!\n");
printf("请检查密文文件是否放至D:\\并改名为security.dat\n");
getch();
exit(1);
}
if((outputt=fopen("D:\\original.txt","w"))==NULL)
{
printf("无法创建文件D:\\original.txt!\n");
getch();
exit(1);
}
printf("\n\n\n即将解密!\n\n\n注意!密匙输入错误将会导致解密错误!\n\n");
fread(input,20,1,inputt);
p=code(a1,b1,c1,d1,input);
printf("%s\n",p);
fputs(p,outputt);
while(!feof(inputt))
{
fread(input,20,1,inputt);
p=code(a1,b1,c1,d1,input);
printf("%s",p);
fputs(p,outputt);
}
printf("\n解密完成!\n");
getch();
printf("请检查是否正确。Y/N\n");
ch=getchar();
}while(ch=='y'||ch=='Y');
printf("\n\n解密完成!\n\n");
printf("感谢使用!\n");
fclose(inputt);
fclose(outputt);
}
}
如
将
------------------------------------------------------------------------------
Fraps 3.0.2 汉化版
软件介绍:
Fraps是一款游戏辅助+媒体录制软件,用它可以轻松了解机器在运行游戏时的帧数,从而了解机器的性能!另外它还具备在游戏中的截屏和
录像功能,可以方便的进行屏幕截图和视频捕捉,网上许多魔兽战况等游戏录像都是先用其录制然后压缩处理的。
注:此汉化版无需安装,只需运行下“绿化.bat”即可!
------------------------------------------------------------------------------------
加密 输入asdf四个密匙
解密后得到
-----------------------------------------------------------------------------------
Fraps 3.0.2 汉化版
软件介绍:
Fraps是一款游戏辅助+媒体录制软件,用它可以轻松了解机器在运行游戏时的帧数,从而了解机器的性能!另外它还具备在游戏中的截屏和录像功能,可以方便的进行屏幕截图和视频捕捉,网上许多魔兽战况等游戏录像都是先用其录制然后压缩处理的。
注:此汉化版无需安装,只需运行下“绿化.bat”即可!
J耪匦郗桥nd奥袒?bat”即可!
-----------------------------------------------------------------
望高人指点