希望研究過 AES 的高手,能給一些指點
小弟搜尋過網路後,嘗試以下流程後,處理後,看起來沒有加密,也就是跟原來的一樣
<textarea name="code" class="cpp" rows="200" cols="60">
#define CryptProvtype PROV_RSA_AES
#define ENCRYPT_ALGORITHM CALG_AES_128
CryptAcquireContext( &hCryptProv, // handle to the CSP
NULL, // container name
NULL, // use the default provider
CryptProvtype, // provider type
0)
CryptCreateHash(hCryptProv, CALG_MD5, 0, 0, &hHash)
CryptHashData(hHash, FilePassword, strlen(FilePassword), 0)
CryptDeriveKey(hCryptProv, ENCRYPT_ALGORITHM, hHash, CRYPT_EXPORTABLE, &hKey)
CryptEncrypt( hKey,
0,
Final_Flag,
0,
pbBuffer,
&dwCount,
dwBufferLen)
CryptReleaseContext(hCryptProv,0)
</textarea>
如果改成以下定義,處理後就真的有正常加密
#define CryptProvtype PROV_RSA_FULL
#define ENCRYPT_ALGORITHM CALG_RC4
查了一下msdn
在以下路徑發現
6
6
6
AES Provider Algorithms (Windows)
CALG_AES_128 |
AES block encryption algorithm. |
Key length: 128 bits. Windows 2000/NT: This algorithm is not supported. |
CALG_AES_192 |
AES block encryption algorithm. |
Key length: 192 bits. Windows 2000/NT: This algorithm is not supported. |
CALG_AES_256 |
AES block encryption algorithm. |
Key length: 256 bits. Windows 2000/NT: This algorithm is not supported. |
其中 Windows 2000/NT: This algorithm is not supported. 是為什麼
那我該如何使用呢?,查了很久,也沒說明
小弟是 #include "C:\WINDDK\3790.1830\inc\wxp\wincrypt.h"
希望有人幫忙解答,網路上這方面的資料真少呀