荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: 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软件 网络书店