c语言异或加密函数,用异或算法实现文件的简单加密
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
给文件加密的技术很多,其中又分为不同等级,以适合不同场合的需要.这里给出最简单的文件加密技术,即采用文件逐字节与密码异或方式对
文件进行加密,当解密时,只需再运行一遍加密程序即可.
下面是一个实例程序,能对任意一个文件进行加密,密码要求用户输入,限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语言异或加密函数,用异或算法实现文件的简单加密相关推荐
- c语言文件加密异或操作,用异或算法实现文件的简单加密
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 给文件加密的技术很多,其中又分为不同等级,以适合不同场合的需要.这里给出最简单的文件加密技术,即采用文件逐字节与密码异或方式对 文件进行加密,当解密时,只 ...
- 如何用C语言对文件进行简单加密
最近在完成大作业的时候需要实现一个用C语言对文件进行简单加密的操作,这里主要用的加密思路是破坏文件头,使得系统无法识别文件从而进行加密,最初的思路是将用户输入的加密口令转成ASCII码,再与文件头数据 ...
- python编写凯撒密码的加密函数_python实现 古典密码 凯撒密码的加密与解密
python实现 古典密码 凯撒密码的加密与解密 实现效果如下图: # 凯撒密码加密与解密 # author Sundm string = ['a','b','c','d','e','f','g',' ...
- 加密教程绑定计算机,教你电脑文件夹怎么加密
大家都知道,文件夹可以帮助我们更好的分类保存文件,计算机文件夹也不例外,每一个文件夹对应了磁盘的一块空间.接下来,我就给大家分享一下电脑文件夹加密的方法,希望能帮助到你们 电脑文件夹怎么加密呢?随着科 ...
- c语言合并jpg成pdf,JPG在线转换成PDF文件的简单方法
在现在的工作性质中.大家不管是在工作中还是在学习中,都会用到JPG图片文件,就连我们平时朋友聊天之间,也会传送很多图片文件,但是图片文件在聊天中很方便,但是在工作中传送图片就显得很不正式了,领导都会要 ...
- hive的自定义函数以及自定义加密函数
hive对于敏感数据的加密还不够完善,现在开发一个udf函数,自己设置密钥(hive的加密函数等级比较低,也没有集成自己加密的密钥函数,所以自己开发一个),如果要加密一些数据则可以自己使用特定的密钥进 ...
- C语言学习之路--函数,从知识到实战
目录 一.前言 二.函数是什么? 三.C语言中函数的分类 1.库函数 1.为什么会有库函数? 2.如何学习库函数? 3.学习库函数举例 1.strcpy 2.memset 3.库函数学习工具总结 2. ...
- 计算机里的文档怎么设置密码,电脑里的文件夹怎么加密
电脑里的文件夹怎么加密,有些重要的文件或比较隐私的文件存放在电脑上,这些文件我们只希望自己能看到并使用,不希望别人访问.最好的办法就是去对这些文件进行加密.这里就来教大家解决这个问题. 电脑里的文件夹 ...
- 用异或的性质实现简单加密解密
异或运算用^表示,对a,b两整数进行异或操作是当两数的二进制对应位置不同时,结果的该位为1,否则为0. 异或运算有一个性质: 当a^b=c,则c^b=a,即同一个数对a进行两次异或的结果还是a. 利 ...
最新文章
- [java手把手教程][第二季]java后端博客系统文章系统——No10
- [转载]为什么mysql用的是B+树?
- oracle表格颜色,如何在oracle中使用光标更新特定颜色
- mac下npm/node的安装和卸载、升级;node、npm升级后最后删掉node_modules重新安装
- 安装 Power BI 报表服务器
- 前端做聊天软件的功能难点
- Qt之问题: Unknown module(s) in QT: multimedia
- (day 51 - 字符转化为数字 ) 剑指 Offer 67. 把字符串转换成整数
- matlab图像融合代码,图像融合+源代码+matlab
- 爬虫实战——QQ空间自动点赞!这个脚本值三千五你信吗?
- 新中大账务软件win7连接慢的问题
- vue倒计时翻页插件
- keil工程 freertos AC5编译器移植到AC6编译器
- 演讲培训——荣耀时刻
- 【游戏测试】客户端性能 - drawcall 工具链
- 2021前端面试总结及反思
- css 居中问题的总结
- 黑马程序员_基础测试
- 2021年语音合成年度总结
- 【毕业设计】毕业设计的ppt中的模版相关设计和内容实现——为了将我的毕设整得好一些
热门文章
- 深入理解文档/视图框架体系_九宫格项目开发感悟
- Developer FAQ: Building | 开发人员常遇到的问题:构建
- (COPY)document.all和document.getElementById用法 document.all用法:
- jupyter notebook即原来的Ipython notebook的使用方法
- 如何减少tomcat内存使用量?
- struts2 跳转类型 result type=chain、dispatcher、redirect
- C语言指针入门 《C语言非常道》
- 【快乐水题】2000. 反转单词前缀
- (转)记录一次迁移 wss WebSocket 的事故
- MySQL数据同步,出现Slave_SQL_Running:no和slave_io_running:no问题的解决方法