如何签名文件然后验证?

时间:2012-02-13 08:27:08

标签: python encryption gnupg

我正在编写一个应用程序,在该应用程序中,我将文件同步到我想要对文件进行签名的服务器,然后将其发送回客户端,以便对其进行验证。

对于Ubuntu / Debian,似乎有多个Python的gnupg模块:

python-gnupginterface - GnuPG(GPG)的Python接口

python-gpgme - GPGME库的python包装器

python-gpgme-dbg - GPGME库的python包装器(调试扩展)

python-pyme - GPGME GnuPG加密库的Python接口

python-pyme-doc - GPGME GnuPG加密库的Python接口

有人可以推荐一些我应该使用哪种能让我快速起步并运行的人吗?

我应该只使用gpg而不是使用Python模块吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

使用python-gpgme(作为奖励,你可能知道维护者)。

以下是如何使用它来签名的东西(如果有更好的方法,请查看jamesh,我没有广泛使用它):

import gpgme
from io import BytesIO

ctx = gpgme.Context()
plain = BytesIO("Hello")
sign = BytesIO("")

ctx.sign(plain, sign, gpgme.SIG_MODE_CLEAR)
print sign.getvalue()

如果不清楚,BytesIO就像文件一样。您可以将其标记为file("/etc/passwd")作为简单标记,sys.stdout作为标记,并且它是DWYW。

答案 1 :(得分:1)

您可以使用http://code.google.com/p/python-gnupg/

它包装命令行GnuPG。我用它来加密/签名和解密/验证文件。