C语言使用异或(xor)函数可以加密或解密文件你知道吗?你知道C语言如何使用异或(xor)加密或解密文件吗?下面是小编为大家带来的关于C语言如何使用异或(xor)加密或解密文件的知识,欢迎阅读。
xor_encrypt.c
#defineTRUE1
#defineFALSE0
#include
#include
#include
#include//如果在/usr/include/找不到,可以在/usr/include/sys/复制过去
//输出信息
voidmsg_log(char*str);
//判断文件是否存在
intfile_exists(char*filename);
//主函数
//更多精*内容:bianceng/Programming/C/
intmain(intargc,char*argv[]){
intkeylen,index=0;
char*source,*dest,*key,fBuffer[1],tBuffer[20],ckey;
FILE*fSource,*fDest;
source=argv[1];//原文件
dest=argv[2];//目的文件
key=argv[3];//加密字串
//检查参数
if(source==NULL||dest==NULL||key==NULL){
msg_log("paramerror
usage:xor_encryptsourcedestkey
e.g./xor_encrypto.txtd.txt123456");
exit(0);
}
//判断原文件是否存在
if(file_exists(source)==FALSE){
sprintf(tBuffer,"%snotexists",source);
msg_log(tBuffer);
exit(0);
}
//获取key长度
keylen=strlen(key);
fSource=fopen(source,"rb");
fDest=fopen(dest,"wb");
while(!feof(fSource)){
fread(fBuffer,1,1,fSource);//读取1字节
if(!feof(fSource)){
ckey=key[index%keylen];//循环获取key
*fBuffer=*fBuffer^ckey;//xorencrypt
fwrite(fBuffer,1,1,fDest);//写入文件
index++;
}
}
fclose(fSource);
fclose(fDest);
msg_log("success");
exit(0);
}
//输出信息
voidmsg_log(char*str){
printf("%s
",str);
}
//判断文件是否存在
intfile_exists(char*filename){
return(access(filename,0)==0);
}
这张图如果使用php来处理需要2秒左右,但用C处理只需要130毫秒。
fdipzone@ubuntu:~/C$gcc-oxor_encryptxor_encrypt.c
fdipzone@ubuntu:~/C$time./xor_encrypt1280.jpg1280en.jpg'@#$%^&*()_DFGHJKadsklfjasdf'
success
real0m0.139s
user0m0.060s
sys0m0.070s
在利用PHP制作项目的时候经常会使用AES加密算法进行数据加密和解密,那么AES加密算法是如何进行数据加密和解密的呢?下面小编为大家解答一下,希望能帮到您!AES加密是一种高级加密标准,AES加密采用对称分组密码体制,AES加密数据块分组长...
热心网友 一、加密护护份教莓寄逢犀抚篓文件或文件夹 步骤一:打开Windows资源管理器。 步骤二:右键单击要加密的文件或文件夹,然后单击[属*"。 步骤三:在[常规"选项卡上,单击[高级"。选中[加密内容以便保护数据"复选框 在加密过程...
tplogin怎么重新设置密码?tplogin怎么修改密码?要重新设置(修改)tplogin登录页面的密码,需要分情况来进行*作。一种情况是,用户忘记了之前的密码,已经不能登录到tplogin设置页面了;另一种情况是,用户知道原来的密码,可...
在选购和使用密封件时,用户应经常留意下列各项要求,避免出现不必要的质量问题:1、生产我们经过严格的选择和长期的经验积累,已经产生一套系列*的供应渠道,我们的供货,是密封件行业的最全面的,所以在生产质量方面,都能很好地把关,保持平稳高质量的水...
不同的编程语言判断文件是否存在的方法是不一样的。你知道C/C++中如何判断某一文件或目录是否存在吗?下面是小编为大家带来的C/C++中如何判断某一文件或目录是否存在的知识,欢迎阅读。1.C++很简单的一种办法:复制代码代码如下:#inclu...
来自未来的房子五年级作文11-23
土木工程*毕业生自我鉴定09-29
迷人的碧洲公园三年级作文12-05
鹿丸经典语录05-22
爱的温度初中作文800字10-29
取名小学作文范文02-17
优秀工会工作者个人事迹材料02-24
使用制*机要注意的事项07-30
官马溶洞导游词09-01
《看电视》识字教学反思范文09-08
赚2万还是赔8万的励志故事08-16
可爱的西瓜300字作文4篇09-03
《我能管好我自己》的读后感09-07
《老王》教学策划方案09-18
一年级语文经典教案09-07
记住过去作文1000字09-07