文件加解密算法C++ txt word均可

来源:转载

#include <stdio.h>
#include <stdlib.h>
int main()
{
int jiajie_fun(char infile[20] ,char outfile[20] );//对加密解密函数的声明
int choose;
char mingfile[20];
char mifile[20];
printf("欢迎进入加密与解密文件系统/n/n");
while(1)
{
printf("输入数字 1 并按回车则进入加密系统/n");
printf("输入数字 2 并按回车则进入解密系统/n/n");
printf("请选择并输入1或2/n");
scanf("%d",&choose);
if(choose==1||choose==2) break;
printf("您没有正确输入 请输入字母1或2并按回车结束,请您重新输入/n/n/n/n");
}
if(choose==1)
{
printf("请输入您想要加密的文件名,并按回车结束/n");
scanf("%s",mingfile);
printf("请输入加密到的目标文件名,并按回车结束/n");
scanf("%s",mifile);
jiajie_fun(mingfile,mifile);
printf("对%s文件的加密已经成功,感谢您对本程序的使用/n",mingfile);


if(choose==2)
{
printf("请输入您想要解密的文件名, 并按回车结束/n");
scanf("%s",mifile);
printf("请输入解密到的目标文件名, 并按回车结束/n");
scanf("%s",mingfile);
jiajie_fun(mifile,mingfile);
printf("对%s文件的解密已经成功,感谢您对本程序的使用/n",mifile);

}
getchar();
getchar();

}

int jiajie_fun(char infile[20],char outfile[20])
{
int key=50;//0无法加密 密钥位数少不安全,但我个人意见,不是长度,而是复杂度决定安全性 
//float key=3.14; //需要的话就更换密钥 
//char key[]="I am a goodboy";
FILE *in,*out;
char ch;

if((in=fopen(infile,"rb"))==NULL)
{printf("不能找到该文件/n");
exit (0);}//结束程序
if((out=fopen(outfile,"wb"))==NULL)
{printf("不能找到该文件/n");
exit (0);}


while (1)
{
ch=fgetc(in);
ch=ch^key; //这里换用其他更复杂的算式也不错 
if(feof(in)) break;
fputc(ch,out); 
}

fclose(in);
fclose(out);
return 0;
}
//*******************************异或加解密**********************************//
//*****************************嵌入到文件读取中******************************//
/*#include <stdio.h>
void main()
{
char ming[13]="I am goodboy";//'/0'明文
int miyao=356;//密钥
char secret[13];//必须指定大小 密文
for (int i=0;i<13;i++)
{ *(secret+i)=miyao^(*(ming+i));}//加密
printf("%s/n",secret);
for (i=0;i<13;i++)
{ *(ming+i)=miyao^(*(secret+i));}//解密
printf("%s/n",ming);
}*/【百木破解】 http://www.bmpj.net 破解资源 编程技术 破解软件 资源分享


分享给朋友:
您可能感兴趣的文章:
随机阅读: