有的时候,我们需要将数据加密,来保护自己的数据
下面的代码,演示了C语言如何加密数据
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char* xor(char* source,char* key);
char f_file[500],f_data[500],pass[500];
FILE *file;
puts("文件加密工具 By:紫玫冰心");
printf("要加密的文件名(不和程序在一个目录下要提供目录):");
scanf("%s",f_file);
file=fopen(f_file,"r"); //打开一个文件,用于读取数据
if(!file)
{
puts("打开文件失败,请确认文件是否存在,或者文件正在被其他程序使用!");
system("pause");
return 0;
}else if(!feof(file))
{
fgets(f_data,sizeof(f_data)+1,file);//读取文件内容
printf("文件加密密码:");
scanf("%s",pass);
/* 加密文件数据 */
fscanf(file,f_data);//读取文件内容
/* 清空文件 */
fclose(file);//已经保存数据了,关闭文件
file=fopen(f_file,"w");//打开文件
fprintf(file,xor(f_data,pass));//加密文件数据
fclose(file);//关闭文件
puts("加密完成!");
}
system("pause");
return 0;
}
char* xor(char* source,char* key)
{
int j;
int slen=strlen(source);
int klen=strlen(key);
char* tmpstr=(char*)malloc((slen+1)*sizeof(char));
memset(tmpstr,0,slen);
for(j=0;j<slen;j++)
{
tmpstr[j]=source[j]^key[j%klen];
if(!tmpstr[j])
tmpstr[j]=source[j];
}
tmpstr[slen] = 0;
return tmpstr;
}