
#include <stdlibh>
#include<stdioh>
#define x 4//密钥
/定义加密函数/
int jiami()
{
FILE fp1,fp2; //定义函数指针
char filename[50],ch;
scanf("%s",filename) ;
fp1=fopen(filename,"r");
if(fp1==NULL)
{
printf("\n警告!打开文件时出错!\n");
return 0;
} //打开文件失败
// printf("原文件为:\n");
fp2=fopen("jiamihou","w");//新建存放加密后数据的文件jiamihou
if(fp2==NULL)
{
printf("\n警告!打开文件时出错!\n");
return 0;
}
while(!feof(fp1)) //没有到达文件尾,继续读入字符
{
ch=fgetc(fp1); //正确读出原文件
ch=ch+x;//凯萨加密法
//putchar(ch);//显示加密后的文件
fputc(ch,fp2); //将加密后的字符放入文件jiamihou中
}
printf("加密成功!\n");
fclose(fp1);
fclose(fp2);
}
/定义解密函数/
int jiemi()
{
FILE fp1,fp2;
char filename[50],ch;
char y;
printf("\n");
printf("请输入要解密的文件:\n");
scanf("%s",filename) ; //要解密的文件名
fp1=fopen(filename,"r");
if(fp1==NULL)
{
printf("\n警告!打开文件时出错!\n");
return 0;
}//打开文件失败
fp2=fopen("jiemihou","w");//新建存放解密后数据的文件jiemihou
if(fp2==NULL)
{
printf("\n警告!打开文件时出错!\n");
return 0;
}
do
{
printf("请输入密码:\n");
scanf("%d",&y) ; //密码
}while(y!=x);
while(!feof(fp1)) //没有到达文件尾,继续读入字符
{
ch=fgetc(fp1); //正确读出原文件
ch=ch-y;//凯萨解密法
//putchar(ch);//显示解密后的文件
fputc(ch,fp2); //将解密后的字符放入文件jiemihou中
}
printf("解密成功!\n");
fclose(fp1);
fclose(fp2);
}
/定义打开文件/
int display()
{
FILE fp;
char filename[50],ch;
printf("\n");
printf("请输入要打开显示的文件:\n");
scanf("%s",filename) ; //要显示的文件名
fp=fopen(filename,"r");
if(fp==NULL)
{
printf("\n警告!打开文件时出错!\n");
return 0;
}//打开文件失败
while(!feof(fp)) //没有到达文件尾,继续读入字符
{
ch=fgetc(fp); //正确读出原文件
putchar(ch);//显示解密后的文件
}
printf("\n");
fclose(fp);
}
/主函数/
void main()
{
int n;
do
{
printf(" *** 作方式如下:\n");
printf("1为加密 *** 作\n");
printf("2为解密 *** 作\n");
printf("3为显示 *** 作\n");
printf("0为退出 *** 作\n");
printf("");
printf("\n请选择您的 *** 作:\n");
scanf("%d",&n);
switch(n)
{
case 0:
break;
case 1:
printf("\n您选择了加密 *** 作\n");
jiami();
break;
case 2:
printf("\n您选择了解密 *** 作\n");
jiemi();
break;
case 3:
printf("您选择了显示文件 *** 作\n");
display();
break;
default:
printf("请在0-3之间选择\n");
}
}while(n!=0);
printf("您选择了退出 *** 作\n");
system("pause");//系统暂停,输出“按任意键继续”包含在<stdlibh>中
}
#include<stdioh>
#include<stringh>
#include<stdlibh>
main()
{
void sc(char fp,char key,int Flen,int Klen);
FILE fp;
char pBuf,filename[20],key[20],ch;
printf("请输入选择:A、加密 B、解密 C退出\n");
ch=getchar();
while(ch!='c'&&ch!='C')
{
if(ch=='a'||ch=='A'||ch=='b'||ch=='B')
{
printf("请输入要打开的文件名:\n");
scanf("%s",filename);
if((fp=fopen(filename,"rb"))==NULL)
{printf("无法打开文件,请注意输入后缀!\n");<br/> exit(0);<br/> }
fseek(fp,0,SEEK_END);
int len=ftell(fp);
pBuf=new char[len+1];
rewind(fp);
fread(pBuf,1,len,fp);
pBuf[len]=0;
printf("%s\n",pBuf);
fclose(fp);
printf("请输入加密/解密的密码:\n");
scanf("%s",key);
sc(pBuf,key,len,strlen(key));
printf("请输入保存加密文件的文件名:\n");
scanf("%s",filename);
if((fp=fopen(filename,"wb"))==NULL)
{printf("无法保存文件,请注意磁盘是否已满!\n");<br/> exit(0);<br/> }
else
fwrite(pBuf,1,len,fp);
fclose(fp);
printf("请输入选择:A、加密 B、解密 C退出\n");
}
else {
printf("输入错误,请重新输入\n");
}
ch=getchar();
ch=getchar();
}
}
void sc(char fp,char key,int Flen,int Klen)
{int i,j,k;<br/>for(i=0;i<Flen;i+=Klen)<br/>for(j=i,k=0;k<Klen;j++,k++)<br/>fp[j]^=key[k];<br/><br/>fp[i]='\0';<br/>printf("%s\n",fp);<br/>}
最简单的分辨方法:凡是号称自己有“闪电加密”、“瞬间加密”、“一秒钟加密”功能的软件,一定是伪加密软件!典型就是什么高强度文件夹加密大师、文件夹加密超级大师等等,稍微懂点电脑常识的人都知道,即使是复制文件,都无法做到瞬间完成。
伪加密软件常见的有:高强度文件夹加密大师、金锁文件夹加密特警、E-钻文件夹加密大师、E-神文件夹加密、文件夹加密超级大师、文件加锁王、文件夹保护神、文件夹加密至尊、文件夹金刚锁、超级兔子加密……太多了。
下面说破解方法:
破解一般有两种方法:使用跟踪软件,此外用dos命令也能破解一些低级软件、
最简单的,使用资源管理器打开电脑(开始菜单里附件自带的),就可以看到很多类似00020c01-0000-0000-c000-000000000046的文件夹,就是所谓的加密文件夹了,此外还有不少辅助软件,随便列举几个:
1直接用WinRAR浏览加密文件夹,就可以轻松地看到没有加密前的所有内容
2冰刃( IceSword ,可以用来破解文件夹加锁王加密的文件夹)
3Total Commander,这个软件特别酷,是windows资源管理器终结者,可以用来破解E-钻文件夹加密大师,E-神文件夹加密,高强度文件夹加密大师,文件加锁王,超级特工秘密文件夹加密的文件和文件夹。)
4文件夹嗅探器,几乎所有伪加密软件,都可以探测的出来~~
二、用dos命令的CD、dir /a /x、这样的命令就能看到像E-钻文件夹加密大师、高强度文件夹加密大师这种文件“加密”的内容。(夸张吧呵呵),不过后期接触电脑的人大多不太会用dos,不过没关系可以用软件来破解,呵呵。
最后,很多人觉得使用这种伪软件没什么危险,其实破解的人也许并不多,但是关键在于,它们采用了一些windows技巧来达到“加密”的效果,使得你日常使用时,做了什么别的 *** 作,结果你“加密”的文件就消失了,这样岂不是后悔莫及
如果你发现你身边的朋友使用了刚才所说的那些软件,应该好心劝告他们,要不你就只能听他们哭诉了。目前真正采用标准算法的加密软件有PGP和大狼狗加密专家,前者功能强大,但是易用性差,后者还是免费的,大家都可以试试看。
C语言设计一个简单的加密解密程序如下:
加密程序代码:
#include<stdioh>
main()
{
char
c,filename[20];
FILE
fp1,fp2;
printf("请输入待加密的文件名:\n");
scanf("%s",filename);
fp1=fopen(filename,"r");
fp2=fopen("miwentxt","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<stdioh>
#include<stringh>
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("yuanwentxt","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);
}
}
以上就是关于写一个对文本文件加密的程序和一个解密程序全部的内容,包括:写一个对文本文件加密的程序和一个解密程序、c语言程序设计文件加密解密、手残把文件加密了,如何破解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)