pythonpyme:无需用户交互的简单解密

2024-05-23 22:55:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Pyme与GPGME接口,签名/加密没有问题。然而,当我试图解密时,它总是提示输入密码短语,尽管它是通过c.set_passphrase_cb回调设置的。我做错什么了吗?在


Tags: 密码passphrasecbsetgpgmepyme
2条回答

我也有类似的问题。 我的代码如下:

def passphrase_回调(hint='',desc='',prev_bad=''): return'密码'

类密码引擎: NoSignKeys类(异常): definit(self,str): 异常。init(self,str)

def __init__(self, user_id, passphrase):
    "Initialize with ID (e-mail)"
    self.user_id = user_id
    self.passphrase = passphrase
def verify(self, data):
    c = core.Context()
    sig = core.Data(string = data)
    file = None
    plain = core.Data()
    c.op_verify(sig, file, plain)
    result = c.op_verify_result()
    plain.seek(0, 0)
    plaintext = plain.read()
    sig = result.signatures
    status = False
    for s in sig:
        status = (s.status == 0)
    return status, plaintext

def sign(self, data):
    c = core.Context()
    for sigkey in c.op_keylist_all(self.user_id, 1):
        if sigkey.can_sign:
            c.signers_add(sigkey)
    if not c.signers_enum(0):
        raise CryptoEngine.NoSignKeys("No secret %s's keys suitable for signing" % self.user_id)

    plain = core.Data(data)
    sig = core.Data()
    c.set_passphrase_cb(passphrase_callback)
    c.op_sign(plain, sig, mode.CLEAR)
    sig.seek(0, 0)
    return sig.read()

尽管设置了密码回调,我还是会收到一个消息框,要求 密码短语或只是一个异常通知错误的密码。 是否有人解决了这个问题并能分享他的知识? 谢谢, 燕

在设置密码回调之前添加“c.set_armor(1)”。在

相关问题 更多 >