该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

给文件加密的技术很多,其中又分为不同等级,以适合不同场合的需要.这里给出最简单的文件加密技术,即采用文件逐字节与密码异或方式对

文件进行加密,当解密时,只需再运行一遍加密程序即可.

下面是一个实例程序,能对任意一个文件进行加密,密码要求用户输入,限8位以内(当然你可以再更改).程序有很好的容错设计,这是我们应该

学习的.

/* Turbo 2.0 pass. give file a password! */

#include

#include

#include

#include

void dofile(char *in_fname,char *pwd,char *out_fname);/*对文件进行加密的具体函数*/

void main(int argc,char *argv[])/*定义main()函数的命令行参数*/

{

char in_fname[30];/*用户输入的要加密的文件名*/

char out_fname[30];

char pwd[8];/*用来保存密码*/

if(argc!=4){/*容错处理*/

printf("\nIn-fname:\n");

gets(in_fname);/*得到要加密的文件名*/

printf("Password:\n");

gets(pwd);/*得到密码*/

printf("Out-file:\n");

gets(out_fname);/*得到加密后你要的文件名*/

dofile(in_fname,pwd,out_fname);

}

else{/*如果命令行参数正确,便直接运行程序*/

strcpy(in_fname,argv[1]);

strcpy(pwd,argv[2]);

strcpy(out_fname,argv[3]);

dofile(in_fname,pwd,out_fname);

}

}

/*加密子函数开始*/

void dofile(char *in_fname,char *pwd,char *out_file)

{

FILE *fp1,*fp2;

register char ch;

int j=0;

int j0=0;

fp1=fopen(in_fname,"rb");

if(fp1==NULL){

printf("cannot open in-file.\n");

exit(1);/*如果不能打开要加密的文件,便退出程序*/

}

fp2=fopen(out_file,"wb");

if(fp2==NULL){

printf("cannot open or create out-file.\n");

exit(1);/*如果不能建立加密后的文件,便退出*/

}

while(pwd[++j0]);

ch=fgetc(fp1);

/*加密算法开始*/

while(!feof(fp1)){

fputc(ch^pwd[j>=j0?j=0:j++],fp2);/*异或后写入fp2文件*/

ch=fgetc(fp1);

}

fclose(fp1);/*关闭源文件*/

fclose(fp2);/*关闭目标文件*/

}

/*程序结束*/

c语言异或加密函数,用异或算法实现文件的简单加密相关推荐

  1. c语言文件加密异或操作,用异或算法实现文件的简单加密

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 给文件加密的技术很多,其中又分为不同等级,以适合不同场合的需要.这里给出最简单的文件加密技术,即采用文件逐字节与密码异或方式对 文件进行加密,当解密时,只 ...

  2. 如何用C语言对文件进行简单加密

    最近在完成大作业的时候需要实现一个用C语言对文件进行简单加密的操作,这里主要用的加密思路是破坏文件头,使得系统无法识别文件从而进行加密,最初的思路是将用户输入的加密口令转成ASCII码,再与文件头数据 ...

  3. python编写凯撒密码的加密函数_python实现 古典密码 凯撒密码的加密与解密

    python实现 古典密码 凯撒密码的加密与解密 实现效果如下图: # 凯撒密码加密与解密 # author Sundm string = ['a','b','c','d','e','f','g',' ...

  4. 加密教程绑定计算机,教你电脑文件夹怎么加密

    大家都知道,文件夹可以帮助我们更好的分类保存文件,计算机文件夹也不例外,每一个文件夹对应了磁盘的一块空间.接下来,我就给大家分享一下电脑文件夹加密的方法,希望能帮助到你们 电脑文件夹怎么加密呢?随着科 ...

  5. c语言合并jpg成pdf,JPG在线转换成PDF文件的简单方法

    在现在的工作性质中.大家不管是在工作中还是在学习中,都会用到JPG图片文件,就连我们平时朋友聊天之间,也会传送很多图片文件,但是图片文件在聊天中很方便,但是在工作中传送图片就显得很不正式了,领导都会要 ...

  6. hive的自定义函数以及自定义加密函数

    hive对于敏感数据的加密还不够完善,现在开发一个udf函数,自己设置密钥(hive的加密函数等级比较低,也没有集成自己加密的密钥函数,所以自己开发一个),如果要加密一些数据则可以自己使用特定的密钥进 ...

  7. C语言学习之路--函数,从知识到实战

    目录 一.前言 二.函数是什么? 三.C语言中函数的分类 1.库函数 1.为什么会有库函数? 2.如何学习库函数? 3.学习库函数举例 1.strcpy 2.memset 3.库函数学习工具总结 2. ...

  8. 计算机里的文档怎么设置密码,电脑里的文件夹怎么加密

    电脑里的文件夹怎么加密,有些重要的文件或比较隐私的文件存放在电脑上,这些文件我们只希望自己能看到并使用,不希望别人访问.最好的办法就是去对这些文件进行加密.这里就来教大家解决这个问题. 电脑里的文件夹 ...

  9. 用异或的性质实现简单加密解密

    异或运算用^表示,对a,b两整数进行异或操作是当两数的二进制对应位置不同时,结果的该位为1,否则为0. 异或运算有一个性质:  当a^b=c,则c^b=a,即同一个数对a进行两次异或的结果还是a. 利 ...

最新文章

  1. [java手把手教程][第二季]java后端博客系统文章系统——No10
  2. [转载]为什么mysql用的是B+树?
  3. oracle表格颜色,如何在oracle中使用光标更新特定颜色
  4. mac下npm/node的安装和卸载、升级;node、npm升级后最后删掉node_modules重新安装
  5. 安装 Power BI 报表服务器
  6. 前端做聊天软件的功能难点
  7. Qt之问题: Unknown module(s) in QT: multimedia
  8. (day 51 - 字符转化为数字 ) 剑指 Offer 67. 把字符串转换成整数
  9. matlab图像融合代码,图像融合+源代码+matlab
  10. 爬虫实战——QQ空间自动点赞!这个脚本值三千五你信吗?
  11. 新中大账务软件win7连接慢的问题
  12. vue倒计时翻页插件
  13. keil工程 freertos AC5编译器移植到AC6编译器
  14. 演讲培训——荣耀时刻
  15. 【游戏测试】客户端性能 - drawcall 工具链
  16. 2021前端面试总结及反思
  17. css 居中问题的总结
  18. 黑马程序员_基础测试
  19. 2021年语音合成年度总结
  20. 【毕业设计】毕业设计的ppt中的模版相关设计和内容实现——为了将我的毕设整得好一些

热门文章

  1. 深入理解文档/视图框架体系_九宫格项目开发感悟
  2. Developer FAQ: Building | 开发人员常遇到的问题:构建
  3. (COPY)document.all和document.getElementById用法 document.all用法:
  4. jupyter notebook即原来的Ipython notebook的使用方法
  5. 如何减少tomcat内存使用量?
  6. struts2 跳转类型 result type=chain、dispatcher、redirect
  7. C语言指针入门 《C语言非常道》
  8. 【快乐水题】2000. 反转单词前缀
  9. (转)记录一次迁移 wss WebSocket 的事故
  10. MySQL数据同步,出现Slave_SQL_Running:no和slave_io_running:no问题的解决方法