| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 795 人关注过本帖
标题:求救!解密出现乱码!
只看楼主 加入收藏
GTAVICE
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-2-28
收藏
 问题点数:0 回复次数:3 
求救!解密出现乱码!
#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”即可!
-----------------------------------------------------------------

望高人指点
搜索更多相关主题的帖子: 解密 乱码 
2010-01-02 15:25
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:0 
试了下,没啥问题,,

离恨恰如春草,更行更远还生。
2010-01-02 20:02
木瓜君
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:144
注 册:2009-10-17
收藏
得分:0 
程序代码:
#include "stdio.h"
#include "string.h"
#include "conio.h"
#include "stdlib.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");
   fflush(stdin);
   printf("请检查是否正确。Y/N\n");
   ch=getchar();
       }while(ch=='n'||ch=='N');
       printf("\n\n解密完成!\n\n");
       printf("感谢使用!\n");
       fclose(inputt);
       fclose(outputt);
   }
}


[ 本帖最后由 木瓜君 于 2010-1-2 21:10 编辑 ]
2010-01-02 21:08
木瓜君
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:144
注 册:2009-10-17
收藏
得分:0 
注释掉while那段后,貌似就没加乱码了~
2010-01-02 21:12
快速回复:求救!解密出现乱码!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025037 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved