c语言文件加密和解密方法如下:
1、首先打开VC++6.0;
2、选择文件,新建;
3、选择C++ source file 新建一个空白文档;
4、声明头文件
#includestdio.h
#includestdlib.h
#includestring.h
首先写个加密函数,算法就是简介里说的;
void EncryptFile(FILE *sfp,FILE *dfp,char pwd)
{
char ch;
if(sfp==0||dfp==0)
{
printf("ERROR!\n");
return;
}
while((ch=fgetc(sfp))!=EOF)
{
if((ch='a')(ch='z'))
{
ch=(ch-'a'+1)%26+'a';
ch=ch^pwd;
}
if((ch='A')(ch='Z'))
{
ch=(ch-'A'+1)%26+'A';
ch=ch^pwd;
}
fputc(ch,dfp);
}
}
写解密子函数:与加密的过程相反;
void DecryptFile(FILE *sfp,FILE *dfp,char pwd)
{
char ch;
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);
}
}
输出函数,输出文件内容
void OutputFile(FILE *fp)
{
char ch;
while((ch=fgetc(fp))!=EOF)
putchar(ch);
}
主函数,主要调用这几个函数
int main()
{
/*用户输入的要加密的文件名*/
char sfilename[20];
/*用户输入加密后保存的文件名*/
char dfilename[20];
/*用来保存密码字符*/
char pwd;
FILE *sfp,*dfp;
printf("\nPlease input filename to be encrypted:\n");
/*得到要加密的文件名*/
gets(sfilename);
/*得到加密后你要的文件名*/
printf("input filename to save the encrypted file:\n");
gets(dfilename);
/*得到加密字符*/
printf("Please input your Password:\n");
//scanf("%c",pwd);
pwd=getch();
/*屏幕以*来表示输入的加密字符*/
printf("*\n");
/*以只读方式打开要加密的文件*/
if((sfp=fopen(sfilename,"r"))==0)
{
printf("Can't open the file :%s\n",sfilename);
exit(0);
}
/*输出要加密的文件*/
printf("\nThe the text of file to be encrypted is:\n");
OutputFile(sfp);
/*建立加密后的文件*/
if((dfp=fopen(dfilename,"w+"))==0)
{
printf("Can't open or create the file :%s\n",dfilename);
//exit(0);
}
/*文件加密*/
fseek(sfp,0L,SEEK_SET);
EncryptFile(sfp,dfp,pwd);
printf("\n\nEncrypted the file successfully!\n");
/*输出加密后的文件*/
printf("\nAfter encrypting the text of file is:\n");
fseek(dfp,0L,SEEK_SET);
OutputFile(dfp);
fclose(sfp);
fclose(dfp);
getch();
return 0;
}
#include stdio.h
#define isletter( c ) ( ((c)='a'(c)='z') || ((c)='A'(c)='Z') )
void Enc( const char *str, char *out, int key )
{
int i = 0;
while( str[i] )
{
if ( isletter( str[i] ) )
{
out[i] = str[i] + key;
if ( ! isletter( out[i]) )
out[i] -= 26;
}
else
out[i] = str[i];
i++;
}
out[i] = 0;
}
void Denc( const char *str, char *out, int key )
{
int i=0;
while( str[i] )
{
if ( isletter( str[i] ) )
{
out[i] = str[i] - key;
if ( ! isletter( out[i] ) )
out[i] += 26;
}
else
out[i] = str[i];
i++;
}
out[i] = 0;
}
int main()
{
char out[100], out2[100];
Enc( "THE QUICK BROWn fox jumps over THE LAZY DOG", out, 3 );
printf( "%s\n", out );
Denc( out, out2, 3 );
printf( "%s\n", out2 );
}
这个其实是c大调五线谱,下面的按钮模拟琴键,乐谱看一下就可以了。墙上的乐谱下划一线上的音符对应第一个按键,下划一线和最下面一根线中间空当处的音符对应第二个按键。其实就是c调的1和2,以此类推
琴谱出来后,先点地上的第一个按钮,会发现琴谱的第一个音符变亮了,说明对了。这样按照数字依次点,全部亮了就对了。
密室逃脱2
MD5SHA高级解密器
对流行的加密方式MD5和SHA1密码解密,
支持16位和32位的MD5码和40位的SHA1码。
同时集成木头字典生成器。
该软件是一款绿色免费软件,不写注册表……
当前最新2.52版,点击下载MD5SHA高级解密器。预览图片
1.集成木头字典生成器 v3.81
查看详细情况
2.软件包集成MD5爆破专家(闪速版)和SHA1爆破专家(闪速版) 去除高级版中保存记录和进度功能,不显示进度条。
解密速度更快,计算时间更短。
3.保存破解进度,可自动或手动保存。
本软件采用暴力破解的方法,破解时间根据字典大小有所不同。
如果字典很大,时间会很长,以至于不可能一次完成。
根据设置自动或手动保存破解进度,以后调出进度继续完成破解任务。
4.保存破解历史记录
在破解任务完成后,无论成功还是失败都保存到记录文件。
下次破解时首先会检查记录文件,以免重复运算。
5.多线程破解(V2.0及以上版本支持)
如果你的CPU是双核的,或者支持超线程。
采用多线程的破解方式可以大大提高破解速度。
即使普通单核CPU,也可让速度提高七倍。
6.可设置线程优先级
在破解工作的同时,用户可能还需要做其它的工作。
设置线程优先级高,则占用系统资源较多,速度较快。
设置线程优先级低,则占用系统资源少,对用户的其它操作影响较低。
7.保存设置文件
对软件的设置保存在文件,下次启动本软件信息不会丢失。
8.完成后自动关机
对于急于破解的用户,如果又有事不能守在电脑旁,这个功能就不多说了。
9.自动检测新版本 软件启动时会访问网络自动检测新版本,如有更新版本提示用户下载升级。