bool recodeFile(string pFileName, int MD, string saveName) { FILE* sourceFile = fopen(pFileName.c_str(), "rb+"); if(sourceFile) { fseek(sourceFile, 0, SEEK_END); //定位到文件末 int nSize = ftell(sourceFile); //文件长度 char* fileBuf = new char[nSize]; //加密数据的容器 char* newBuf = new char[nSize];//加密数据的容器 fseek(sourceFile, 0, SEEK_SET); //文件头 fread(fileBuf, sizeof(char), nSize / sizeof(char), sourceFile); if(nSize > 0) { for(int i = 0; i < nSize; i++) { newBuf[i] = fileBuf[i] + MD; } } fclose(sourceFile); FILE *fp = fopen(saveName.c_str(), "wb+"); fwrite(newBuf, sizeof(char), nSize / sizeof(char), fp); fclose(fp); delete newBuf; delete fileBuf; return true; } return false; }
int _tmain(int argc, _TCHAR* argv[]) { recodeFile("2.png", 10, "password.png"); recodeFile("password.png", -10, "2-1.png"); return 0; }