-
-
[求助]使用CryptoAPI进行RSA加密,为什么不能生成256位的密钥?
-
2017-3-15 16:02
3673
-
[求助]使用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++),自己去改,但对算法不太懂,估计改不了,头痛。
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法