2017-03-03 147 views
0

我想使用Crypto库解密一个加密的openSSL证书。 对于这一点,我用下面的功能:RSA:解密openSSL证书

def decryptMessage(privateKeyString, encryptedMessage): 

    print 'Enter private key pass phrase' 
    passPhrase = raw_input() 

    privateKey= RSA.importKey(privateKeyString, passPhrase) 

    return privateKey.decrypt(ast.literal_eval(str(encryptedMessage))) 

此功能正常工作与小弦如foolorem ipsum。 然而,当我尝试解密一个较大的字符串,如OpenSSL的证书,解密失败并返回此

#«$,^5ô¦┬{¯9██─╚áW¸ÍÀóÂ╗ö▓├ô{Òv&s´À;d▒§= I×òòòÿÞ:Mu▄ñ├Zc╬a╣fÙ╚g╝z¯¹þÞÖ*└²}?õÑ:~Ì ôı*▓açõ─░3Ñz{³é├ p}7Ĭ/tıN®╣¥‗Pzô£▄¤▄╩Ý,æQ'mfî.«¯┴C%tÏ­ýõ/ñlÚ0╗ò¼(Ï5▓ø5Ì└ûƒuƒä£█ÂF=)─[email protected]~§LßÆ▄Ð░mËÅ9Uwõh▀Û/▓Ï,APð HѪm■Îç¼"§Ô,XvÓÏÄÃM■▓v╠@örÂùuE­

因此,我想知道我的功能是如何失败的解密更大的字符串。

回答

1

RSA用于解密/解密小数据块, G。然后用一个随机数用于使用像AES这样的分组密码对通信进行解密/解密。大数据块不受RSA等非对称加密算法的支持。

您的方法似乎缺乏进行加密所需的知识。这非常危险。我建议看看其中包含一切的“密码” Python包,你将需要:https://pypi.python.org/pypi/cryptography

也有介绍的一些很不错的Youtube视频在观众面前这个软件包所做的开发商中,他们解释如何使用什么和他们如何开发cryptography