gpt4 book ai didi

c++ - 相同大小的 Win32 加密

转载 作者:行者123 更新时间:2023-11-28 00:45:49 25 4
gpt4 key购买 nike

我想加密一个 15 字节的数组。问题是我希望密文大小相同。

我做了什么

  1. 制作证书:ma​​kecert.exe -n "CN=me"-sv PrivateKey.pvk -pe Certificate.cer
  2. 编写此代码以导入证书,然后加密明文。

    BYTE    FileContent[1024];
    DWORD dwActualFileLen = 0;
    HANDLE hCertFile;
    if(CryptAcquireContext(&m_hCryptProv, NULL, MS_ENHANCED_PROV, PROV_RSA_FULL, 0))
    {
    hCertFile = CreateFileA("C:\\projects\\Certificate.cer",
    GENERIC_READ,
    FILE_SHARE_READ,
    NULL,
    OPEN_EXISTING,
    FILE_FLAG_SEQUENTIAL_SCAN,
    NULL);

    ReadFile(hCertFile, FileContent, 1024, &dwActualFileLen, NULL);

    m_CertContext = CertCreateCertificateContext(X509_ASN_ENCODING, FileContent, dwActualFileLen);

    CryptImportPublicKeyInfo(m_hCryptProv, X509_ASN_ENCODING, &m_CertContext->pCertInfo->SubjectPublicKeyInfo, &m_hPubKey);
    }

    CryptEncrypt(m_hPubKey, NULL, TRUE, 0, tempBuffer, &dwNewLen, 128);

密文始终为 128 字节。我想强制它与纯文本大小相同。

最佳答案

RSA算法不能输出任意大小的密文。你必须忍受这个。由于您的 RSA keylen 似乎是 1024 位(128 字节),输入和输出大小始终为 128 字节,等于 RSA keylen 的大小...

关于c++ - 相同大小的 Win32 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16296328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com