我试图使用通过GPG生成的带有RSA加密的密钥(这部分是可变的,GnuPG和Pycrypto不是)来加密文件,但是我在实际导入密钥时遇到了困难。我当前使用的代码如下:
key = cryptoRSA.importKey(public_key)
cipher = PKCS1_OAEP.new(RSAkey)
file = open(filename)
但是,这会抛出一个错误,因为我的公钥不是DER结构。有没有一种方法可以生成一个与Pycrypto一起工作的公钥?我对密码学还不太熟悉,所以我根本不知道该怎么解决这个问题。在
Tags:
我使用
openpgp2pem
从Monkeysphere完成了此操作。在首先,通过以下操作获取密钥的ID:
请注意密钥的8位十六进制ID。E、 g.0123ABCD
公钥
要获取公钥:
^{pr2}$密钥
{不幸的是,{cdg>必须删除密钥^才能获得密钥。通过以下方式实现:
然后使用
passwd
命令删除其密码短语。(可以在原始GPG homedir的副本上执行此操作,并使用GPGhomedir
选项对临时副本进行操作。)之后,您可以:
转换PEM供Python使用
在实践中,我发现这样生成的密钥可以直接在PyCrypto中使用:
但是,上面生成的公钥不能直接用于PyCrypto(它缺少一些东西)。我必须生成一个与PyCrypto兼容的PEM,如下所示:
或者,它可以从密钥生成,如下所示。另外,下面允许将密码短语重新添加到密钥中:
一旦密钥添加了密码短语,就可以通过以下方式使用:
GPG密钥远不止是一个“普通”密钥,它还添加了许多其他内容。您应该首先使用monkeysphere中的openpgp2pem工具将其转换为标准的opensslppem密钥。在
相关问题 更多 >
编程相关推荐