看雪论坛

[求助]使用CryptoAPI进行RSA加密,为什么不能生成256位的密钥?

JmpNext 2017-3-15 93

不好意思,初次学习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++),自己去改,但对算法不太懂,估计改不了,头痛。

最新回复 (1)
junkboy 3天前
2
openssl的RSA_generate_key_ex和RSA_generate_key
返回



©2000-2017 看雪学院 | Based on Xiuno BBS | 知道创宇带宽支持 | 微信公众号:ikanxue
Time: 0.009, SQL: 6 / 京ICP备10040895号-17