加密算法通過對(duì)原文的每個(gè)字符進(jìn)行異或運(yùn)算來進(jìn)行加密;解密時(shí)同樣進(jìn)行異或處理即可恢復(fù)到原文。文章來源:http://www.zghlxwxcb.cn/news/detail-555133.html
代碼實(shí)現(xiàn)如下文章來源地址http://www.zghlxwxcb.cn/news/detail-555133.html
#include<stdlib.h>
#include <stdio.h>
int getfilesize(char *path)
{
FILE *pf = fopen(path, "r");
if (pf == NULL)
{
return -1;
}
else
{
fseek(pf, 0, SEEK_END);
int length = ftell(pf);
return length;
}
}
void EncryptFile(char *oldpath, char *newpath)
{
int i = 0;
FILE *pfr, *pfw;
pfr = fopen(oldpath, "rb");
pfw = fopen(newpath, "wb");
if (pfr == NULL || pfw == NULL)
{
fclose(pfr);
fclose(pfw);
return;
}
else
{
int length = getfilesize(oldpath);
char *p = (char *)malloc(length*sizeof(char));
fread(p, sizeof(char), length, pfr);
for (i = 0; i < length; i++)
{
p[i] ^= 'A';
}
fwrite(p, sizeof(char), length, pfw);
fclose(pfr);
fclose(pfw);
}
}
void DecryptFile(char *oldpath, char *newpath)
{
int i = 0;
FILE *pfr, *pfw;
pfr = fopen(oldpath, "rb");
pfw = fopen(newpath, "wb");
if (pfr == NULL || pfw == NULL)
{
fclose(pfr);
fclose(pfw);
return;
}
else
{
int length = getfilesize(oldpath);
char *p = (char *)malloc(length*sizeof(char));
fread(p, sizeof(char), length, pfr);
for (i = 0; i < length; i++)
{
p[i] ^= 'A';
}
fwrite(p, sizeof(char), length, pfw);
fclose(pfr);
fclose(pfw);
}
}
#if 0
void main()
{
// 原始文件的路徑
char *oldpath = "log.txt";
// 加密后的路徑
char *newpath = "log-EecryptFile.dat";
// 解密后的路徑
char *newDecryptFilepath = "log-DecryptFile.txt";
EncryptFile(oldpath, newpath);
DecryptFile(newpath, newDecryptFilepath);
}
#endif
到了這里,關(guān)于簡(jiǎn)單的文件加密C語言代碼實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!