我想加密一个 15 字节的数组。问题是我希望密文具有相同的大小。
我做了什么
- 制作证书:makecert.exe -n "CN=me" -sv PrivateKey.pvk -pe Certificate.cer
编写此代码以导入证书,然后加密纯文本。
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 字节。我想强制它与纯文本大小相同。