相关查询什么是最好的加密python方法

时间:2009-10-13 05:09:01

标签: python encryption

我尝试使用名为
的gnupg.py模块加密解密函数    “def test_encryption_and_decryption(self):”

我可以通过传递从公钥服务器检索到的密钥或指纹来使用此功能。

我得到了关键:

retk = urllib.urlopen('http://pool.sks-keyservers.net:11371/pks/lookup
op=get&search=hex format of key')
pub_key = retk.read()

我还尝试在加密方法中传递指纹:

data = "Hello, world!"
edata = str(self.gpg.encrypt(data, fingerprint))
print edata

没有办法如何做。有人通过提供有价值和有效的解决方案/建议来帮助我。

谢谢!

1 个答案:

答案 0 :(得分:3)

在使用具有keyid的密钥加密之前,需要将密钥导入密钥环。使用import_keys功能。

编辑:即使导入密钥后您也无法加密,因为GPG不信任它。当您打开详细消息时,这一点就变得很明显;你会得到

gpg: <keyid>: There is no assurance this key belongs to the named user

要解决此问题(没有为密钥设置信任路径),您可以更改gpg的信任模型。以下程序适用于我(以我的密钥为例)

import gnupg, urllib
retk = urllib.urlopen("http://keyserver.pramberger.at/pks/"
       "lookup?op=get&search=0x6AF053F07D9DC8D2")
pub_key = retk.read()

gpg = gnupg.GPG(gnupghome="/tmp/foo", verbose=True)
print "Import:", gpg.import_keys(pub_key).summary()
print "Encrypt:", gpg.encrypt("Hello, world!", "6AF053F07D9DC8D2", 
                  always_trust=True)