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

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

全部回覆(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(不一定這麼拼),因為之前試過其他庫,這兩種填充模式才能解出來。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板