使用Windows API CryptEncrypt加密大文件时出现问题。目前只能加密小文本文件。 我不知道如何运行MSDN中提到的CryptEncrypt。
有人能给我一些帮助吗?
bool fEOF = FALSE;
do {
if (!ReadFile(hSourceFile, pbBuffer, dwBlockLen, &dwCount, NULL)) {
handleError("Error reading source.\n", GetLastError());
goto Exit_encryptFile;
}
if (dwCount < dwBlockLen) {
fEOF = TRUE;
}
//Encrypt File
if (!CryptEncrypt(hKey, NULL, fEOF, 0, pbBuffer, &dwCount, dwBufferLen)) {
handleError("Error during CryptEncrypt.\n", GetLastError());
wchar_t err[256];
memset(err, 0, 256);
FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), err, 255, NULL);
int msgboxID = MessageBoxW(NULL,
err,
(LPCWSTR)L"☠",
MB_OK);
goto Exit_encryptFile;
}
答案 0 :(得分:0)
我认为我通过将块大小增加到256来解决了这个问题,并且它开始加密而没有任何错误。 我会在编码之后看看是否可以解密它。