2017-03-03 139 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