【问题标题】:Decrypt string using Python M2Crypto使用 Python M2Crypto 解密字符串
【发布时间】:2014-12-01 20:08:41
【问题描述】:

我正在尝试使用 M2Crypto 在 python 中解密电子邮件。我遇到的问题是我在网上找到的示例似乎都是在文件中读取的。但是在我的代码中,我有一个包含电子邮件正文的字符串。所以我传递了电子邮件的正文。

这是我的程序的基础代码:

from M2Crypto import BIO, SMIME, X509

def decryptMessage(body):
  # Instantiate an SMIME object.
  s = SMIME.SMIME()

  # Load private key and cert.
  s.load_key('recipient_key.pem', 'recipient.pem')

  # Load the encrypted data.
  p7, data = SMIME.smime_load_pkcs7(body)

  # Decrypt p7.
  out = s.decrypt(p7)

  return out.read()

执行此操作时,我收到一条错误消息,提示“文件名太长”

谁能帮我理解如何解密我电子邮件中的字符串?

【问题讨论】:

    标签: python m2crypto


    【解决方案1】:

    smime_load_pkcs7 将文件名作为参数,因此它将您传递的电子邮件正文解释为文件名。不幸的是,SMIME 库的文档记录很差,并且不清楚是否存在将字符串作为参数而不是文件的变体。解决这个问题的一种方法是:

    f = open("tmp", 'w')
    f.write(body)
    p7, data = SMIME.smime_load_pkcs7("tmp") 
    f.close()
    

    【讨论】:

    • 谢谢,但我无法访问这样的文件系统。因此,我的消息在局部变量中的原因。 :D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 2023-03-11
    • 2012-01-03
    • 1970-01-01
    • 2012-12-21
    相关资源
    最近更新 更多