⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 文件加密技术.htm

📁 文件加密技术的程序
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0044)http://myweb.yzu.edu.cn/toby88/c/c1/wjjm.htm -->
<!-- saved from url=(0049)http://beckenglish.51.net/cbook/arti/password.htm --><HTML><HEAD><TITLE>文件加密技术</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR><LINK 
href="../%CE%C4%BC%FE%BC%D3%C3%DC%BC%BC%CA%F5.files/moy.css" type=text/css 
rel=stylesheet></HEAD>
<BODY bgColor=#ffffff onload="">
<P align=center><B class=orang_text>文件加密技术一例</B></P>
<P>给文件加密的技术很多,其中又分为不同等级,以适合不同场合的需要.这里给出最简单的文件加密技术,即采用文件逐字节与密码异或方式对文件进行加密,当解密时,只需再运行一遍加密程序即可.</P>
<P>下面是一个实例程序,能对任意一个文件进行加密,密码要求用户输入,限8位以内(当然你可以再更改).程序有很好的容错设计,这是我们应该学习的.</P>
<P>/* Turbo 2.0 pass. give file a password! 
*/<BR><BR>#include&lt;stdio.h&gt;<BR>#include&lt;stdlib.h&gt;<BR>#include&lt;conio.h&gt;<BR>#include&lt;string.h&gt;<BR><BR>void 
dofile(char *in_fname,char *pwd,char *out_fname);/*对文件进行加密的具体函数*/<BR><BR>void 
main(int argc,char *argv[])/*定义main()函数的命令行参数*/<BR>{<BR>&nbsp;&nbsp;&nbsp; char 
in_fname[30];/*用户输入的要加密的文件名*/<BR>&nbsp;&nbsp;&nbsp; char 
out_fname[30];<BR>&nbsp;&nbsp;&nbsp; char 
pwd[8];/*用来保存密码*/<BR><BR>&nbsp;&nbsp;&nbsp; 
if(argc!=4){/*容错处理*/<BR>&nbsp;&nbsp;&nbsp; 
printf("\nIn-fname:\n");<BR>&nbsp;&nbsp;&nbsp; 
gets(in_fname);/*得到要加密的文件名*/<BR><BR>&nbsp;&nbsp;&nbsp; 
printf("Password:\n");<BR>&nbsp;&nbsp;&nbsp; 
gets(pwd);/*得到密码*/<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
printf("Out-file:\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
gets(out_fname);/*得到加密后你要的文件名*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</P>
<P>dofile(in_fname,pwd,out_fname);<BR>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
else{/*如果命令行参数正确,便直接运行程序*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
strcpy(in_fname,argv[1]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
strcpy(pwd,argv[2]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
strcpy(out_fname,argv[3]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
dofile(in_fname,pwd,out_fname);<BR>&nbsp;&nbsp;&nbsp; }<BR><BR>}<BR></P>
<P>/*加密子函数开始*/<BR>void dofile(char *in_fname,char *pwd,char 
*out_file)<BR>{<BR>&nbsp;&nbsp;&nbsp; FILE *fp1,*fp2;<BR>&nbsp;&nbsp;&nbsp; 
register char ch;<BR>&nbsp;&nbsp;&nbsp; int j=0;<BR>&nbsp;&nbsp;&nbsp; int 
j0=0;<BR><BR>&nbsp;&nbsp;&nbsp; fp1=fopen(in_fname,"rb");<BR>&nbsp;&nbsp;&nbsp; 
if(fp1==NULL){<BR>&nbsp;&nbsp;&nbsp; printf("cannot open 
in-file.\n");<BR>&nbsp;&nbsp;&nbsp; 
exit(1);/*如果不能打开要加密的文件,便退出程序*/<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; 
fp2=fopen(out_file,"wb");<BR>&nbsp;&nbsp;&nbsp; 
if(fp2==NULL){<BR>&nbsp;&nbsp;&nbsp; printf("cannot open or create 
out-file.\n");<BR>&nbsp;&nbsp;&nbsp; 
exit(1);/*如果不能建立加密后的文件,便退出*/<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; 
while(pwd[++j0]);<BR>&nbsp;&nbsp;&nbsp; ch=fgetc(fp1);</P>
<P>/*加密算法开始*/<BR>&nbsp;&nbsp;&nbsp; while(!feof(fp1)){<BR>&nbsp;&nbsp;&nbsp; 
fputc(ch^pwd[j&gt;=j0?j=0:j++],fp2);/*异或后写入fp2文件*/<BR>&nbsp;&nbsp;&nbsp; 
ch=fgetc(fp1);<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; 
fclose(fp1);/*关闭源文件*/<BR>&nbsp;&nbsp;&nbsp; fclose(fp2);/*关闭目标文件*/<BR>}</P>
<P>/*程序结束*/</P>
<P align=center><FONT class=select12 color=#000000 
size=2>辽宁省铁岭师范高等专科学校微机室版权所有&copy;2002</FONT></P>
<P align=center><A href="javascript:window.close()">关闭窗口</A></P>
<SCRIPT language=vbscript>

</SCRIPT>
</BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -