移位文件的加密与解密

/**********************************************************

* Copyright (c) 2012年9月4日 * All rights reserved.

* 文件名:Encryptiom.c

* 功能描述:移位加密与解密文件。

* 作 者:djky12

* 版 本:V1.0

* 日 期:2012-09-04

* 其他说明:

* 函数列表:

*     1.void encryption(char *file):给file文件进行加密

*     2.void decryption(char *file,char *file2, int key): 给file文件进行解密,虚拟主机,并把解密后的结果保存在file2中

*     3.void PrintEncry():打印输出指导用户进行加密操作

*     4.void PrintDecry():打印输出指导用户进行解密操作

* 修改记录:

*

**********************************************************/

#include<stdio.h>

#include<stdlib.h>

#define KEY 20 //加密密码

void encryption(char *file); //声明加密函数

void decryption(char *file,char *file2, int key); //声明解密函数

void PrintEncry(); //声明打印加密函数信息

void PrintDecry(); //声明打印解密函数信息

void main()

{

  int choose = 0; //choose是选择加密操作,还是解密操作标记

  int flag = 1; //标记变量

  char ch;

  while(flag==1)

  {

    /*提示用户该进行的操作*/

    printf(“\n\t\t*****************文件移位加密与解密*****************”);

    printf(“\n\n*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n\n”);

    printf(“\t ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n”);

    printf(“\t | 文件加密请输入【1】 文件解密请输入【2】 |\n”);

    printf(“\t ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n”);

    printf(” 请输入处理文件的方式: “);

    scanf(“%d”,&choose); //选择是加密还是解密

    fflush(stdin);

    switch(choose) //若为1则进入加密,网站空间,为2则解密

    {

     case 1: //进行加密操作

      PrintEncry();

      break;

    case 2: //进行解密操作

      PrintDecry();

      break;

    }

    flag=0; //标记清0

    printf(“是否继续:”);

    scanf(“%c”,&ch);

    if(ch==’Y’||ch==’y’) //判断是否继续程序

    flag=1; //如果选择继续,把flag置1

    system(“cls”); //清屏

  }

}

/**********************************************************

* 函数名:PrintEncry()

* 功能描述:打印输出指导用户进行加密操作

* 输 入:无

* 输 出:无

**********************************************************/

void PrintEncry()

{

  char file1[20];

  printf(“输入加密文件名:”);

  scanf(“%s”,file1);

  fflush(stdin);

  encryption(file1); //进入加密核心函数

}

/**********************************************************

* 函数名:PrintDecry()

* 功能描述:打印输出指导用户进行解密操作

* 输 入:无

* 输 出:无

**********************************************************/

void PrintDecry()

{

  int key2;

  char file1[20],file2[20];

  printf(“输入需要解密的文件名:”);

  scanf(“%s”,file1);

  fflush(stdin);

  printf(“输入解密目的文件名:”);

  scanf(“%s”,file2);

  fflush(stdin);

  printf(“输入解密密码:”);

  fflush(stdin);

  scanf(“%d”,&key2);

  fflush(stdin);

  if(key2!=KEY) //判断输入的密码是否和内定密码一致

    printf(“解密码错误!\n”);

  else

    decryption(file1,file2,key2); //进入解密核心函数

}

/**********************************************************

* 函数名:void encryption(char *file)

* 功能描述:给file文件进行加密

* 输 入:无

* 输 出:无

**********************************************************/

void encryption(char *file)

{

  FILE *fp; //定义指向文件的指针

  char ch;

  if((fp=fopen(file,”wb+”))==NULL)//以写二进制文件的形式打开文件file

  {

    printf(“Cannot open file strike any key exit!”);

    getchar();

    exit(1);

  }

  printf(“输入要加密的字符串:\n”);

  ch=getchar()+KEY; //给每个字母加密

  while (ch!=’\n’+KEY)

  {

    fputc(ch,fp);

    ch=getchar()+KEY;

  }

  printf(“加密成功\n”);

  fclose(fp); //关闭文件

}

/**********************************************************

* 函数名:decryption(char *file,char *file2,int key)

* 功能描述:解密文件,服务器空间,并把解密的结果存放在新文件中

* 输 入:char *file:需要解密的文件;char *file2:存放被解密后 * 的结果;int key:解密的密码

* 输 出:无

**********************************************************/

void decryption(char *file,char *file2,int key)

{

  FILE *fp1,*fp2; //定义指向文件的指针

  char ch;

  if((fp1=fopen(file,”rb+”))==NULL)//以读二进制文件的形式打开文件file

  {

    printf(“Cannot open file strike any key exit!”);

    getchar();

    exit(2);

  }

  if((fp2=fopen(file2,”wb+”))==NULL)//以写二进制文件的形式打开文件flie2

  {

    printf(“Cannot open file strike any key exit!”);

    getchar();

    exit(1);

  }

  ch=fgetc(fp1)-key; //单个字符进行解密操作

  while (ch+key!=EOF) //解密完成

  {

    fputc(ch,fp2); //把解密后的结果保存在file2中

    ch=fgetc(fp1)-key;

  }

  printf(“解密成功\n”); //提示解密成功

  fclose(fp1); //关闭文件

  fclose(fp2);

}

最好的感觉就是你什么都跟我说。

移位文件的加密与解密

相关文章:

你感兴趣的文章:

标签云: