需求:以DWORD为单位对文件进行加密,将每个DWORD与0xfcba0000做异或,写入另一个文件
解答:
#include#include
{
FILE hSource;
FILE hDestination;
DWORD dwKey =0xfcba0000 ;
char pbBuffer;
DWORD dwBufferLen =sizeof (DWORD);
DWORD dwCount;
DWORD dwData;
if (argv[1 ]==0 ||argv[2 ]==0 )
{
printf(“missing argument!\n “);
return false ;
}char szSource =argv[1 ];
char szDestination =argv[2 ];
hSource =fopen(szSource,”rb “);//打开源文件.hDestination =fopen(szDestination,”wb “);//打开目标文件if (hSource ==NULL){printf(“open Source File error !”);return false ;}if (hDestination ==NULL){ printf(“open Destination File error !”);return false ;}//分配缓冲区pbBuffer =(char )malloc(dwBufferLen);
do {
//从源文件中读出dwBlockLen个字节dwCount =fread(pbBuffer,1 , dwBufferLen, hSource);
//加密数据dwData =(DWORD )pbBuffer;//char TO dword dwData ^=dwKey;//xor operation pbBuffer =(char *)&dwData;
//将加密过的数据写入目标文件fwrite(pbBuffer,1 , dwCount, hDestination);
}while (!feof(hSource));
//关闭文件、释放内存fclose(hSource);
fclose(hDestination);
printf(“%s is encrypted to %s\n “,szSource,szDestination);
return 0 ;
}
心得:
char转DWORD:dwData = (DWORD*)pbBuffer;
DWORD转char:pbBuffer = (char ) &dwData;
版权声明:本文由作者Tony Qu原创, 未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
Original: https://www.cnblogs.com/tonyqus/archive/2007/10/09/918191.html
Author: 找事的狐狸
Title: 文件加密的简单实现(C语言)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/536543/
转载文章受原作者版权保护。转载请注明原作者出处!