文件加解密,可另存文件

原创 2006年06月03日 21:14:00

/**********************************************************
  本人花了一下下午写的一个程序!文件加密程序可以自动转换
  输入的文本文件加密或者解密!可以选择保存到文件!
 
  <Edison wong>. QQ139767
**********************************************************/
#include <stdio.h>
#define N 10000
#define JIEMI -4-50+100
#define MI +4+50-100

void Nonetech(int len,char ch[]);
void tech(int len,char ch[]);
void Nonefun();
void fun();
void read();
void maindan();

void read()
{
 FILE *fp;
 char choose;
 char zu;
 char name[10];
 printf("**********************************************************/n");
 printf("请输入需要打开的文件:");
 gets(name);
 fp=fopen(name,"r");
 printf("转换后的明文是:");
 while(!feof(fp))
 {
  zu=fgetc(fp)JIEMI;
  if(zu!='-'&&zu!='#')
   putchar(zu);
 }
 putchar('/n');
 printf("**********************************************************/n");
 fclose(fp);
 printf("回主菜单?(Y)/n");
 scanf("%c",&choose);
 getchar();
 if(choose=='y'||choose=='Y')
  maindan();
}


void maindan()
{
 int a;
 printf("请选择:/n");
 printf("1,需要转换标点符号为密文!/n");
 printf("2,不需要转换标点符号,标点为明文!/n");
 printf("3,密文转换为明文!/n");
 printf("4,退出?(Y)/n");
 scanf("%d",&a);
 getchar();
 switch(a)
 {
 case 1:fun();break;
 case 2:Nonefun();break;
 case 3:read();break;
 case 'Y':break;
 case 'y':break;
 }
}
void Nonetech(int len,char ch[])
{
 int a;
 for(a=0;a<len;a++)
 {
  if(ch[a]==','||ch[a]=='.'||ch[a]=='!'||ch[a]=='/"'||ch[a]==' ')
   a++;
  ch[a]=ch[a]MI;
 }
}
void tech(int len,char ch[])
{
 int a;
 for(a=0;a<len;a++)
  ch[a]=ch[a]MI;
}
void Nonefun()
{
 char ch[N];char choose='y',tempa;char *p;
 while(choose=='y'||choose=='Y')
 {
  int len=0,a;FILE *fp;char name[10];
  printf("**********************************************************/n");
  printf("请输入要转换的明文(不转换标点符号),最后请以#符号结束输入:/n");
  gets(ch);
  p=ch;
  while(*p!='/0')
  {
   len++;
   p++;
  }
  if(ch[len-1]=='#')
  {
   Nonetech(len,ch);
   printf("转换后的密文是:");puts(ch);
   printf("是否保存?(Y)");
   tempa=getchar();
   if(tempa=='y'||tempa=='Y')
   {
    printf("输入预保存的文件名: ");
    scanf("%s",name);
    getchar();
    fp=fopen(name,"w");
    for(a=0;a<len;a++)
     fputc(ch[a],fp);
    fclose(fp);
    printf("OK!已经保存到当前目录下%s文件中./n",name);
   }
   else
    getchar();
  }
  else
   printf("错误!请在结尾输入符号#,否则无法进行转换!/n");
  printf("**********************************************************/n");
  printf("是否继续转换?(Y/N)/回主菜单(Z)/n");
  scanf("%c",&choose);
  getchar();
  if(choose=='z'||choose=='Z')
   maindan();
 }
}
void fun()
{
 char ch[N];char choose='y',tempa;char *p;
 while(choose=='y'||choose=='Y')
 {
  int len=0,a;FILE *fp;char name[10];
  printf("**********************************************************/n");
  printf("请输入要转换的明文,最后请以#符号结束输入:/n");
  gets(ch);
  p=ch;
  while(*p!='/0')
  {
   len++;
   p++;
  }
  if(ch[len-1]=='#')
  {
   tech(len,ch);
   printf("转换后的密文是:");puts(ch);
   printf("是否保存?(Y)");
   tempa=getchar();
   if(tempa=='y'||tempa=='Y')
   {
    printf("输入预保存的文件名: ");
    scanf("%s",name);
    getchar();
    fp=fopen(name,"w");
    for(a=0;a<len;a++)
     fputc(ch[a],fp);
    fclose(fp);
    printf("OK!已经保存到当前目录下%s文件中./n",name);
   }
   else
    getchar();
  }
  else
   printf("错误!请在结尾输入符号#,否则无法进行转换!/n");
  printf("**********************************************************/n");
  printf("是否继续转换?(Y/N)/回主菜单(Z)/n");
  scanf("%c",&choose);
  getchar();
  if(choose=='z'||choose=='Z')
   maindan();
 }
}

void main()
{
 maindan();
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

POI另存数据至Excel文件

想要用java操作Excel文件,首先在项目中导入这两个jar包: poi-3.10-beta2-20130904.jar poi-excelant-3.10-beta2-20130904.jar ...

JavaScript操作Excel并另存文件

JavaScript操作Excel,并另存文件。 关键是那个另存为的文件对话框,搞得烦心了很久,今天终于知道怎么做了。 原来这么简单,没文化很可怕啊~var ExcelSheet; var Exc...
  • iamhj
  • iamhj
  • 2012-01-02 11:11
  • 3974

C#文件加解密

下面这段代码,我要实现将加密后的文件保存在原路径,并且实现秘钥可以由textbox中输入获取   请问一下应该要怎么修改呢  改了好多次了还是不行,直接将key2=textbox也不行,需求帮助:目的...

加解密文件传输系统

  • 2014-04-27 17:09
  • 5.98MB
  • 下载

面向Windows的文件透明加解密解决方案(4)——客户端服务设计与功能实现

为了给实现更好的用户体验与轻量级、灵活性地交互设计,在局域网内管理端与客户端之间采用B/S 架构。客户端除了运行于系统底层的文件加解密驱动程序,还有运行于应用层的负责与服务器通信、控制加解密驱动的运行...

实例加解密文件

  • 2015-11-09 00:03
  • 17KB
  • 下载

图片及文件的AES加解密

  • 2017-02-27 19:36
  • 1.76MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)