84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
人生最曼妙的风景,竟是内心的淡定与从容!
完全是试出来的结果……首先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(不一定这么拼),因为之前试过其他库,这两种填充模式才能解出来。
完全是试出来的结果……
首先base64的文本要转一下
然后RSA_decrypt的第一个入参错了,应该是:
见官网定义:
这里flen是key长度,之前望文生义以为是from_len。
ret>0表示解密成功,结果从rsa.value里取,然后第五个参数是padding的模式,本应该是RSA_PKCS1_PADDING,但是libcrypto.so.6里好像找不到这个常量,我从0到5自己一个个试出来的,估计1是RSA_PKCS1_PADDING,2是SSLV23_PADDING(不一定这么拼),因为之前试过其他库,这两种填充模式才能解出来。