python如何调用libcrypto实现RSA解密?
黄舟
黄舟 2017-04-17 17:01:26
0
1
731
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

모든 응답 (1)
巴扎黑

完全是试出来的结果……
首先base64的文本要转一下

sign = base64.decodestring(sign)

然后RSA_decrypt的第一个入参错了,应该是:

ret = RSA_private_decrypt(rsa_size, sign, rsa, key, 1)

见官网定义:

int RSA_private_decrypt(int flen, unsigned char *from, unsigned char *to, RSA *rsa, int padding);

这里flen是key长度,之前望文生义以为是from_len。
ret>0表示解密成功,结果从rsa.value里取,然后第五个参数是padding的模式,本应该是RSA_PKCS1_PADDING,但是libcrypto.so.6里好像找不到这个常量,我从0到5自己一个个试出来的,估计1是RSA_PKCS1_PADDING,2是SSLV23_PADDING(不一定这么拼),因为之前试过其他库,这两种填充模式才能解出来。

    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿
    회사 소개 부인 성명 Sitemap
    PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!