2015-04-14 50 views
1

我正在嘗試使用Windows CryptoAPI函數進行AES加密。爲什麼CryptImportKey失敗?

我想給我的鑰匙,CryptEncrypt功能,但我CryptImportKey功能failes

這裏是我的代碼:

HCRYPTPROV hProv = NULL; 
    HCRYPTKEY hKey = NULL; 
    DWORD dwBlobLen; 
    PBYTE pbKeyBlob = NULL; 
    pbKeyBlob = (PBYTE)"1a1dc91c907325c6"; 

    if(!CryptAcquireContext(&hProv, NULL,NULL, PROV_RSA_AES,CRYPT_VERIFYCONTEXT)) 
    { 
     printf(" Error in AcquireContext 0x%08x \n",GetLastError()); 
    }  
    if (!CryptImportKey(hProv,pbKeyBlob,sizeof(pbKeyBlob),0,CRYPT_EXPORTABLE,&hKey)) 
    { 
     printf("Error 0x%08x in importing the Des key \n",GetLastError()); 
    } 

回答

0

如果你想使用AES密鑰應該是至少16個字節長,你有8個字節的長鍵。 AES使用128位,192位或256位長密鑰。