-
-
[求助]使用CryptoAPI进行RSA加密,为什么不能生成256位的密钥?
-
发表于:
2017-3-15 16:02
4232
-
[求助]使用CryptoAPI进行RSA加密,为什么不能生成256位的密钥?
不好意思,初次学习CryptoAPI,不是很懂;我想用CryptoAPI进行RSA加解密:
CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, 0);
CryptGenKey( hCryptProv, AT_KEYEXCHANGE, ( 256 << 16 )| CRYPT_EXPORTABLE, &hKey);
CryptGenKey 会调用失败,查了一下:
- CALG_RSA_KEYX is used for AT_KEYEXCHANGE.
而 CALG_RSA_KEYX ,Key length: Can be set, 384 bits to 16,384 bits in 8-bit increments.
MSDN上说,最小的长度为 384bit, 所以试图使用更小的256bit,CryptGenKey会失败;
现在另一方,规定密钥长度要为256bit,否则拒绝通信。 那没有办法使用CryptoAPI了?要自己实现RSA算法?关键是我对算法也不是很懂,网上找的代码无法完全符合要求(要求纯C实现至少256bit,但网上的全是C++),自己去改,但对算法不太懂,估计改不了,头痛。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课