| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 417 人关注过本帖
标题:文件读写和加解密
只看楼主 加入收藏
t2012009
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-6-28
收藏
 问题点数:0 回复次数:0 
文件读写和加解密
为了实现以下功能,大侠们帮忙看看我的程序需要咋改,怎么实现加解密数据后写入文件,求给改改程序中。。。。。。。。。。..............................不胜感谢!!!!
功能:
输入一数据文件和密码,输出对应的加/解密数据文件。读取数据文件,利用异或运算对数据文件内容逐字节进行加/解密运算;将加/解密后的数据写入给定的数据文件
程序:
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
void encryption(char *str)
{
  int i=0,key;
 char fname[20],c,ch=45;
  FILE *fp;
  printf("输入要加密文件的路径\n");
     scanf("%s", fname);
     printf("请输入密钥\n");
       scanf("%d",&key);
        if( (fp = fopen(fname,"r+")) ==NULL)
     {
         printf("error");
     exit(0);
     }
     while( (c = fgetc(fp)) != EOF)
     {
         c = c^ch;
         str[i] = c;
         i++;
     }
     str[i]='\0';
     printf("%s\n", str);
     fclose(fp);
}
   
void decrypt()
{
   int i=0,key;
   char str[MAX],fname[20],c,ch=45;
   FILE *fp;
   printf("输入要解密文件的路径\n");
      scanf("%s", fname);
   printf("请输入密钥\n");
      scanf("%d",&key);
     if( (fp = fopen(fname,"r+")) ==NULL)
     {
         printf("error");
     exit(0);
     }
     while( (c = fgetc(fp)) != EOF)
     {
         c = c^ch;
         str[i] = c;
         i++;
     }
     str[i]='\0';
     printf("%s\n", str);
     fclose(fp);
}
void menu()
{
printf("\n1.Encrypt the file");
printf("\n2.Decrypt the file");
printf("\n3.Quit\n");
}
   void main(int argc,char **argv)
{
      
    char i_num[3000],o_num[3000];
    FILE *infp=NULL;
    FILE *outfp=NULL;
    FILE *fp=NULL;
    int i;
    int c,num;
    {
        if(argc!=3)
            printf("输入错误!");
        else
        printf("本次操作是将文件里的字符修改排版;\n把空格排版改为','每两排换行改为';'\n\n");
        infp=fopen(argv[1],"w");
        outfp=fopen(argv[2],"w");
        printf("成功打开%s;%s!\n",argv[1],argv[2]);
        printf("输入要写入%s的字符串,并以*回车结束:\n",argv[1]);
        for(i=0;;i++)//fgets(i_num,sizeof(i_num),infp);标准输入
        {
            scanf("%c",&i_num[i]);
            if(i_num[i]=='*')
            {
                i_num[i]='\0';
                break;
            }
        }
        fputs(i_num,infp);
        printf("成功写入%s!\n\n",argv[1]);
        fclose(infp);
    }
    fp=fopen(argv[1],"r");
    i=0;
        while((c=fgetc(fp))!=EOF)
      {
          if(c==' ')
          {
              c=',';
              fputc(c,outfp);
          }
          else if(c=='\n')
          {
              i++;
              if(i%2!=0)
              {
                  c=';';
                  fputc(c,outfp);
              }
              else
                  fputc(c,outfp);
          }
          else
              fputc(c,outfp);      
              
      }
      printf("成功转换输入到%s中!\n",argv[2]);
      fclose(outfp);
      printf("成功关闭文件!\n\n");
      printf("本次操作成功!请查看文件!\n");
   




  switch(num)
  {

  case 1:encryption();break;
  case 2:decrypt();break;
  default:break;
  }

}
搜索更多相关主题的帖子: 文件 解密 
2010-06-28 09:42
快速回复:文件读写和加解密
数据加载中...
 
   



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

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