荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: Peter (小飞侠), 信区: Program
标 题: 利用C语言命令行参数加密文件(转寄)
发信站: BBS 荔园晨风站 (Thu Jan 21 21:05:41 1999), 转信
转自厦门大学sony
在C语言中,主函数Main()有两个参数,argc和argv,用于接收命令行参数。
参数argc为整型,保存命令行参数个数,按约定程序名为第一个参数.所以argc
的值至少为1.参数argv是指向字符串数组的指针,数组中的每个元素指向一个
命令行参数.argv的一般形式为 char *argv[] 通过给argv家数组下标,就能
访问各个参数,如 argv[0]指向程序名;argv[1]指向第一个参数,以此类推.
利用C语言的这一特性,可以将文件保密字放在命令行参数中,这样编译好
的程序,只键入 文件名或不正确的参数1即保密字,均不能执行,从而达到文件
保密的目的.
下面以一个简单的C程序secret.c 说明这一加密方法.
在该程序中,只有两个命令行参数,一个是程序名secret,还有一个是xxx001
,这就是该文件的保密字.程序编译后,只有键入命令secret xxx001,程序才能
执行.
secert.c 的源程序如下:
#include "stdio.h"
#include "process.h"
void Bell()
main(int argc,char *argv[])
{
char name;
if(argc!=2){
printf("You must enter password \n");
Bell();/* 发出警告*/
exit(0);
}
else if (argc==2 && Strcmp(argv[1],"xxx001"))
{
printf("invalid password\n");
Bell();
exit(0);
}
printf("hello,welcome to use %s",argv[0]);
return 0;
}
void Bell();
{
sound(1000);
delay(200);
nosound();
}
--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.1.3]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店