c语言/加密解密

给你一个加密算法 我写的 用异或算法处理文本类的文档

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
jiemi()
{
int k,l;
char FN[40],FS[40];
char ch,mima[40],x;
FILE *f1,*f2;
printf("输入要解密的文件夹名称:");
scanf("%s",FN);
if((f1=fopen(FN,"r"))==NULL)
{
printf("您的路径有误,系统将不能完成任务,请重新进入。");
getch();
exit(1);
}
printf("输入您要解密到的文件夹名称:");
scanf("%s",FS);
if((f2=fopen(FS,"w"))==NULL)
{
printf("您的输入有误,系统将不能完成任务,请重新进入。");
getch();
exit(1);
}
printf("输入密码:");
scanf("%s",mima);

l=strlen(mima);
k=0;
ch=fgetc(f1);
while(ch!=EOF)
{
k=k%l;
fputc(ch^mima[k],f2);
ch=fgetc(f1);
k++;
}
fclose(f1);
fclose(f2);
printf("解密成功,请在该软件目录找到您解密的文件。\n");
getch();
}
jiami()
{
int k,l;
char FN[20],FS[20];
char ch,mima[40],x;
FILE *f1,*f2;
printf("输入要打开的文件夹名称:");
scanf("%s",FN);
if((f1=fopen(FN,"r"))==NULL)
{
printf("您的路径有误,系统将不能完成任务,请重新进入。");
getch();
exit(1);
}
printf("输入要保存的文件夹名称:");
scanf("%s",FS);
if((f2=fopen(FS,"w"))==NULL)
{
printf("您的输入有误,系统将不能完成任务,请重新进入。");
getch();
exit(1);
}
printf("输入密码:");
scanf("%s",mima);

l=strlen(mima);
k=0;
ch=fgetc(f1);
while(ch!=EOF) //文件没有到底就继续 ,EOF文件的底部
{
k=k%l;
fputc(ch^mima[k],f2);
ch=fgetc(f1);
k++;
}
fclose(f1);
fclose(f2);
printf("加密成功,请在该软件目录找到您加密的文件。\n");
getch();
}
main()
{
char y;
while(1)
{
printf("说明:欢迎使用文件加密程序,该程序可以将txt文档加密为为不可读文件,解密后返回原状态\n\n");
printf("小提示:输入文件名字的时候请使用字母,数字或下划线。\n并且请加上(文件名).txt的后缀,要加密的文件请放在和程序文件同目录下\n\n");
printf(" ******菜单*******\n");
printf(" * 1.加密 *\n");
printf(" * 2.解密 *\n");
printf(" * 0.退出 *\n");
printf(" *****************\n");
printf(" 请输入要执行的命令:\n");
y=getch();
switch(y)
{
case '1': jiami();system("cls");break;
case '2': jiemi();system("cls");break;
case '0': exit(0);
}
}
}

㈡ C语言加密解密程式

加密方式呢?

㈢ 数据加密解密C语言

用什么算法的,

㈣ 跪求c语言加密解密思路,,!!

你的92是怎么得到523的?


/*解密的过程就是加密的逆过程,你加密的过程是:
1. 每位数都加7并对10进行取余
2. 第一位和第三位进行调换
那么解密的过程就可以是这样:
1. 第一位和第三位进行调换(现在就重新回到了原来的位置)
2. 每位数都减7并对10进行取余
可是,这里有一个问题:如果这位上的数小于7怎么办。解决方案是先加10再减7,最后的结果就是加3然后对10取余
*/
#include <stdio.h>
int jiemi(int m)
{
int i, j, a, s;
s = 0;
while(m)
{
a = m%10; //取出最后一位
s = s*10 + (a+3)%10;
m /= 10;
}
return s;
}
int main()
{
int n;
while(scanf("%d", &n)==1)
{
printf("%d 解密后: %d ", n, jiemi(n));
}
return 0;
}

㈤ c语言的加密与解密问题

少了utchar函数,头文件也没有#include<stdio.h>。
其他的暂时都对。

㈥ c语言加密解密

^#include <stdio.h>
#include <cstdlib>
main()
{
char password[10],len,i=0,ch,c;
char infile[20];
FILE * in;
printf("FILE NAME:");
scanf("%s",infile);
if((in=fopen(infile,"r+"))==NULL)
{
printf("ERROR!");
exit(0);
}
printf("KEY:");
scanf("%s",password);
len=0;
while(password[len]!=0)len++;
while((ch=fgetc(in))!=EOF)
{
c=ch^password[i];
fseek(in,-1,SEEK_CUR);
fputc(c,in);
fseek(in,ftell(in),SEEK_SET);
i++;
if(i==len)i=0;
}
fclose(in);
printf("\nNow open the TEXT.\n",infile);
}

㈦ c语言文件加密和解密

c语言文件加密和解密方法如下:

1、首先打开VC++6.0;

voidDecryptFile(FILE*sfp,FILE*dfp,charpwd)
{
charch;
while((ch=fgetc(sfp))!=EOF)
{
if((ch>='a')&&(ch<='z'))
{
ch=ch^pwd;
ch=(ch-'a'+25)%26+'a';
}
if((ch>='A')&&(ch<='Z'))
{
ch=ch^pwd;
ch=(ch-'A'+25)%26+'A';
}
fputc(ch,dfp);
}
}

输出函数,输出文件内容
voidOutputFile(FILE*fp)
{
charch;
while((ch=fgetc(fp))!=EOF)
putchar(ch);
}
主函数,主要调用这几个函数
intmain()
{
/*用户输入的要加密的文件名*/
charsfilename[20];
/*用户输入加密后保存的文件名*/
chardfilename[20];
/*用来保存密码字符*/
charpwd;
FILE*sfp,*dfp;

printf(": ");
/*得到要加密的文件名*/
gets(sfilename);
/*得到加密后你要的文件名*/
printf(": ");
gets(dfilename);
/*得到加密字符*/
printf("PleaseinputyourPassword: ");
//scanf("%c",&pwd);
pwd=getch();
/*屏幕以*来表示输入的加密字符*/
printf("* ");
/*以只读方式打开要加密的文件*/
if((sfp=fopen(sfilename,"r"))==0)
{
printf("Can'topenthefile:%s ",sfilename);
exit(0);
}
/*输出要加密的文件*/
printf(": ");
OutputFile(sfp);
/*建立加密后的文件*/
if((dfp=fopen(dfilename,"w+"))==0)
{
printf("Can'topenorcreatethefile:%s ",dfilename);
//exit(0);
}
/*文件加密*/
fseek(sfp,0L,SEEK_SET);
EncryptFile(sfp,dfp,pwd);
printf(" Encryptedthefilesuccessfully! ");
/*输出加密后的文件*/
printf(": ");
fseek(dfp,0L,SEEK_SET);
OutputFile(dfp);
fclose(sfp);
fclose(dfp);
getch();
return0;
}


㈧ C语言设计一个简单的加密解密程序

C语言设计一个简单的加密解密程序如下:
加密程序代码
#include

main()
{
char
c,filename[20];
FILE
*fp1,*fp2;
printf("请输入待加密的文件名:\n");
scanf("%s",filename);
fp1=fopen(filename,"r");
fp2=fopen("miwen.txt","w");
do
{
c=fgetc(fp1);
if(c>=32&&c<=126)
{
c=c-32;
c=126-c;
}
if(c!=-1)
fprintf(fp2,"%c",c);
}
while(c!=-1);
}
解密程序代码:
#include

#include

main()
{
char
c,filename[20];
char
yanzhengma[20];
FILE
*fp1,*fp2;
printf("请输入待解密文件名:\n");
scanf("%s",filename);
printf("请输入验证码:\n");
scanf("%s",yanzhengma);
if(strcmp(yanzhengma,"shan")==0)
{
fp1=fopen(filename,"r");
fp2=fopen("yuanwen.txt","w");
do
{
c=fgetc(fp1);
if(c>=32&&c<=126)
{
c=126-c;
c=32+c;
}
if(c!=-1)
fprintf(fp2,"%c",c);
}
while(c!=-1);
}
else
{
printf("验证码错误!请重新输入:\n");
scanf("%s",filename);
}
}