0

我需要用wincrypt解密一些数据文件,网上的例子很少。我发现的最可靠的例子是here。但是,这是使用各种我似乎无法找到相关信息的类型(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);

这对我来说是纯中文。任何人都可以理解它并希望清除一些浑水吗?谢谢

4

1 回答 1

0

您链接的代码很糟糕。看起来这个家伙写了他的加密方法,然后简单地通过复制和粘贴第一个方法并进行一些更改来编写他的解密方法(但在加密过程中留下了大量代码)。如果它有效,我不会感到惊讶,只是它浪费时间和空间做加密留下的无用工作(加上评论都是倒退的)。

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

于 2009-10-07T01:11:19.097 回答