C++ 使用wincrypt解密数据文件。有麻烦。示例显示CBase64Utils?

C++ 使用wincrypt解密数据文件。有麻烦。示例显示CBase64Utils?,c++,cstring,cryptoapi,C++,Cstring,Cryptoapi,我需要用wincrypt解密一些数据文件,而且示例很少。我发现的最可靠的例子是。然而,这使用了各种我似乎找不到的类型(CBase64Utils、CString等) 我正在阅读最终解决方案,试图理解过程,并得出以下结论: // 5. Determine the LENGTH of the BUFFER to hold the corresponding cyphertext. CBase64Utils bu; int ipszSourceLen =

我需要用wincrypt解密一些数据文件,而且示例很少。我发现的最可靠的例子是。然而,这使用了各种我似乎找不到的类型(CBase64Utils、CString等)

我正在阅读最终解决方案,试图理解过程,并得出以下结论:

// 5. Determine the LENGTH of the BUFFER to hold the corresponding cyphertext.
            CBase64Utils bu;
            int ipszSourceLen = strlen(pszSource);
            char *pszSource2 = bu.Decode(pszSource, &ipszSourceLen);

            DWORD   dwSourceLen = strlen(pszSource2);      // Get the length of the input string.
            DWORD   dwDataLen = dwSourceLen;
            BYTE*   pTarget = NULL;
            DWORD   dwCryptDataLen = dwDataLen;
            CryptEncrypt(hKey, 0, TRUE, 0, NULL, &dwCryptDataLen, dwDataLen);

这对我来说是纯中国的。有谁能理解它,并希望清除一些泥水?谢谢你链接的代码太可怕了。这家伙似乎编写了他的加密方法,然后通过复制和粘贴第一个方法并进行一些更改(但在加密过程中留下了大量代码)编写了他的解密方法。如果它能工作,我不会感到惊讶,只是它浪费时间和空间做加密留下的无用工作(加上评论都是反向的)


由于wincrypt是一个Microsoft库,因此有很多示例。由于MSDN示例(通常)写得很好,注释也很好,因此应该更容易理解,因此我建议您改为查看它们。

Hmm这看起来非常熟悉,您不会碰巧将其用于COMP4501=)?