小编PeP*_*lus的帖子

CryptEncrypt不加密整个文本

我正在尝试使用wincrypt加密文本消息.然而,我的代码是不可预测的.它不加密/解密整个纯文本,而只加密/解密整个纯文本的一部分.如果我改变密码长度(例如改为"password123"),它会加密/解密不同数量的字符.这是我的代码.

#include <windows.h>
#include <wincrypt.h>
#include <stdio.h>


int main()
{
 const char* passw = "password12";
 const char* toencrypt = "consectetur adipiscing elit. In tellus nisl,   sodales non arcu quis, sagittis maximus orci cras amet.";

 HCRYPTPROV hProv;
 HCRYPTHASH hHash;
 HCRYPTKEY hKey;
 DWORD todwSize = (DWORD)strlen(toencrypt);
 PBYTE pBuffer;

 CryptAcquireContext(&hProv, NULL, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_DELETEKEYSET);
 CryptAcquireContext(&hProv, NULL, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_NEWKEYSET);

 CryptCreateHash(hProv, CALG_MD5, 0, 0, &hHash);
 CryptHashData(hHash, (BYTE*)passw, strlen(passw), 0);
 CryptDeriveKey(hProv, CALG_RC4, hHash, 0, &hKey);

 //--------------------------------------------------------------------

 CryptEncrypt(hKey, 0, TRUE, 0, NULL, &todwSize, todwSize);

 pBuffer = …
Run Code Online (Sandbox Code Playgroud)

c++ windows encryption cryptography wincrypt

2
推荐指数
1
解决办法
819
查看次数

标签 统计

c++ ×1

cryptography ×1

encryption ×1

wincrypt ×1

windows ×1