RSA:解密openSSL证书

时间:2017-03-03 00:24:22

标签: python python-2.7 encryption rsa pycrypto

我正在尝试使用Crypto库解密加密的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=)─y@O~§LßÆ▄Ð░mËÅ9Uwõh▀Û/▓Ï,APð HѪm■Îç¼"§Ô,XvÓÏÄÃM■▓v╠@örÂùuE­

因此,我想知道我的函数无法解密更大的字符串。

1 个答案:

答案 0 :(得分:1)

RSA用于en / decrypting小块数据,例如: G。随机数,然后用于使用像AES这样的分组密码来进行通信/解密通信。 RSA等非对称加密算法根本不支持大块数据。

您的方法似乎缺乏正确加密所需的知识。这非常危险。我建议看看“加密”Python包,其中包含您需要的所有内容:https://pypi.python.org/pypi/cryptography

还有一些非常好的Youtube视频演示,在观众面前,这个软件包的开发人员在演讲中解释了如何使用它们以及如何开发Ising.f90:56:15: else if (i == 1 .AND. 1 < j < L) then 1 Error: Unexpected junk after ELSE statement at (1) Ising.f90:59:15: else if (i == L .AND. 1 < j < L) then 1 Error: Unexpected junk after ELSE statement at (1) Ising.f90:62:15: else if (1 < i < L .AND. j == 1) then 1 Error: Unexpected junk after ELSE statement at (1) Ising.f90:65:15: else if (1 < i < L .AND. j == L) then 1 Error: Unexpected junk after ELSE statement at (1)