文件加密算法实现

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:zaifasoftware
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:该文简单介绍了加密的概念以及常用的加密技术,并用一个C语言程序实现了文件加密。
  关键词:数据加密;C语言
  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)12-2730-02
  1 概述
  随着网络技术的发展,网络安全也就成为当今网络社会焦点中的焦点。由于某些特殊的需要,一些敏感数据或者是保密性文件需要在网上供多人共享,电子商务、电子邮件等等,都对数据的保密要求比较高。由此,对文件进行加密就显得尤为重要。
  2 什么是加密
  加密就是对原来我们能够直接阅读理解的数据内容(明文)按某种特殊的算法进行处理,使其成为不可读的一段代码,通常称为“密文”。如果我们需要再次使用这些密文,必须输入相应的密钥,使密文转换为明文。通过这样的加密,可以达到保护数据不被人非法窃取、阅读的目的。常用的加密算法有置换表算法、对称密钥加密算法、基于公钥的加密算法等。
  3 用C语言实现文件加密
  给文件加密的算法根据加密需求的不同而分为不同的等级,该文算法能对任意一个文件进行加密,密码要求用户输入,限8位以内。
  程序使用pswfile()函数实现加密,算法利用fgetc()函数和fputc()函数从文件中逐字节读取和存储数据,将读取的字节码与密钥进行异或操作,从而隐藏字节码的信息。然后,程序将异或后的字节码所对应的字符输出到目标文件中。
  程序的主要代码如下:
  #include
  #include
  #include
  #include
  .
  void pswfile(char *inname,char *psw,char *outname);/* 函数声明*/
  void main(int argc,char *argv[])
  {
  char inname[30];
  char outname[30];
  char psw[8];
  if(argc!=4){ /* 容错处理*/
  printf(“请输入需要加密的文件名\n”);
  gets(inname);
  printf(“请输入密码:\n”);
  gets(psw); /* 输入密码 */
  printf(psw);
  printf(“请输入输出的文件名\n”);
  gets(outname); /* 加密后的文件名*/
  pswfile(inname,psw,outname); }
  else {
  strcpy(inname,argv[1]);
  strcpy(psw,argv[2]);
  strcpy(outname(argv[3]);
  pswfile(inname,psw,outname);
  }}
  void pswfile(char *inname,char *psw,char *outname)
  {FILE *fp1,*fp2;
  char ch;
  int i=0,j=0;
  fp1=fopen(inname,”rb”); /*以二进制只读方式打开要加密的文件*/
  if(fp1=NULL){
  printf(“该文件不能打开或者不存在\n”);
  exit(1); /* 如果不能打开,则退出程序 */
  }
  fp2=fopen(outname,”wb”);
  if(fp2=NULL){
  printf(“该文件不能打开或者创建给文件\n”);
  exit(1); /* 如果不能加密,退出程序 */
  }
  while(psw[ j]);
  ch=fgetc(fp1);
  while(!feof(fp1)){
  fputc(ch^psw[i>=j?i=0;i ],fp2); /*异或后写入文件*/
  ch=fgetc(fp1);
  }
  fclose(fp1); /* 关闭文件指针*/
  fclose(fp2);
  }
  4 结束语
  本文重在用C语言实现文件加密的算法,对文件进行加密后的安全等级没有进行太多考量。对于本文算法的解密,不难想到,把加密后的密文作为明文再次加密即可。
  参考文献:
  [1] 郑宇,杨春生,于江.加密与解密实战入门[M].北京:电子工业出版社,2006.
  [2] 金鼎图书工作室·加密解密—文件保护与数据恢复[M].成都:四川电子音像出版中心,2003.
  [3] 谭浩强·C语言程序设计[M].北京:清华大学出版社,1998.
其他文献
目的探讨咳嗽、咳痰患者理想的护理方法 ,以促进患者有效排痰,预防肺部并发症,提高生活质量。方法对我院收治的咳嗽咳痰患者进行临床护理,观察患者康复情况。结论早期雾化吸
"那地"是滇中彝族丧葬仪式中一个关键性程序环节,其过程可大致分为三部分:一是寻备材质,搭建坟庙,制作毕咕,圈围坟面;二是请师、献牲与禳解;三是迎亲跪舅,裁戴孝帕,寻魂找树,
苏北突破,"轨道上的江苏"全面铺开2019年12月16日9:05,D5668次列车从盐城站鸣笛启程,苏北地区从此迈入"高铁时代"。徐宿淮盐高铁是江苏首条全线均在苏北地区的铁路客运专线,
数字媒体艺术为广告传媒创造了更多视觉奇观,促使传统的广告传媒业不断寻求改变。数字媒体艺术依托信息技术与互联网技术,从广告传媒信息可视化、时空再造、广告形象塑造以及
该文介绍了一个基于Unity3D开发平台的虚拟场景实体的约束框架,以使得利用Unity3D生成的虚拟场景在外界实际数据驱动下,仍能以符合现实世界客观规律和主观要求的形式加以展现
郑向敏教授作为旅游学界的领军人物,有非常强的学术敏锐性和前瞻性,他开创和建立了旅游安全领域研究的国家高地,并早在21世纪初就同步开始了体育与旅游、运动与休闲方面的研
<正> 一位从欧洲匆匆赶来参加2003年上海时装周的意大利女士,从浦东机场一进入上海市区就情不自禁地赞叹:上海是一座美丽的大城市!上海的时装周一定会非常精彩!确实,在10月25
针对目前大部分企业尚未建立起高效办公自动化系统,办公效率较低,文档安全性无法得到有效保障等问题,基于工作流技术构建一套公文流转系统,作为企业办公自动化平台的核心支撑