📄 文件加密技术.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<stdio.h><BR>#include<stdlib.h><BR>#include<conio.h><BR>#include<string.h><BR><BR>void
dofile(char *in_fname,char *pwd,char *out_fname);/*对文件进行加密的具体函数*/<BR><BR>void
main(int argc,char *argv[])/*定义main()函数的命令行参数*/<BR>{<BR> char
in_fname[30];/*用户输入的要加密的文件名*/<BR> char
out_fname[30];<BR> char
pwd[8];/*用来保存密码*/<BR><BR>
if(argc!=4){/*容错处理*/<BR>
printf("\nIn-fname:\n");<BR>
gets(in_fname);/*得到要加密的文件名*/<BR><BR>
printf("Password:\n");<BR>
gets(pwd);/*得到密码*/<BR><BR>
printf("Out-file:\n");<BR>
gets(out_fname);/*得到加密后你要的文件名*/<BR>
</P>
<P>dofile(in_fname,pwd,out_fname);<BR>
}<BR>
else{/*如果命令行参数正确,便直接运行程序*/<BR>
strcpy(in_fname,argv[1]);<BR>
strcpy(pwd,argv[2]);<BR>
strcpy(out_fname,argv[3]);<BR>
dofile(in_fname,pwd,out_fname);<BR> }<BR><BR>}<BR></P>
<P>/*加密子函数开始*/<BR>void dofile(char *in_fname,char *pwd,char
*out_file)<BR>{<BR> FILE *fp1,*fp2;<BR>
register char ch;<BR> int j=0;<BR> int
j0=0;<BR><BR> fp1=fopen(in_fname,"rb");<BR>
if(fp1==NULL){<BR> printf("cannot open
in-file.\n");<BR>
exit(1);/*如果不能打开要加密的文件,便退出程序*/<BR> }<BR>
fp2=fopen(out_file,"wb");<BR>
if(fp2==NULL){<BR> printf("cannot open or create
out-file.\n");<BR>
exit(1);/*如果不能建立加密后的文件,便退出*/<BR> }<BR>
while(pwd[++j0]);<BR> ch=fgetc(fp1);</P>
<P>/*加密算法开始*/<BR> while(!feof(fp1)){<BR>
fputc(ch^pwd[j>=j0?j=0:j++],fp2);/*异或后写入fp2文件*/<BR>
ch=fgetc(fp1);<BR> }<BR>
fclose(fp1);/*关闭源文件*/<BR> fclose(fp2);/*关闭目标文件*/<BR>}</P>
<P>/*程序结束*/</P>
<P align=center><FONT class=select12 color=#000000
size=2>辽宁省铁岭师范高等专科学校微机室版权所有©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 + -