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 に答える