2012-02-13 48 views
5

我正在寫一個應用程序,在該應用程序中,我將文件同步到服務器,在該服務器上我要對文件進行簽名,然後將其發送回可以驗證其身份的客戶端。如何簽名文件然後驗證?

似乎有成爲用於Python爲Ubuntu/Debian的多個gnupg的模塊:

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

蟒-GPGME - Python包裝爲GPGME庫

蟒-GPGME-DBG - Python包裝爲GPGME庫(調試擴展)

蟒-pyme - Python接口GPGME GnuPG的加密庫

python-pyme-doc - Python接口到GPGME GnuPG加密庫

有人可以推薦我應該使用哪一個讓我快速啓動並運行?

我是不是應該使用gpg而不是使用Python模塊?

謝謝!

回答

1

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

它包裝命令行的GnuPG。我用它來加密/簽名和解密/驗證文件。

+0

我看到了,但看起來這個軟件包在Ubuntu中不可用。我的選項包括: 蟒蛇,gnupginterface - Python接口的GnuPG(GPG) 蟒蛇-GPGME - Python包裝爲GPGME庫 中的python-GPGME-DBG - Python包裝的GPGME庫(調試擴展) 蟒蛇,pyme - Python接口到GPGME GnuPG加密庫 python-pyme-doc - GPGME GnuPG加密庫的Python接口 – 2012-02-13 22:16:53

+0

@JonoBacon您是否考慮過對其進行easy_install或其他類似的操作? – jrg 2012-02-13 22:22:12

+1

噢,我通過簡單的下載,解開和'python setup.py install'安裝了這個:-) – 2012-02-14 06:26:30

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。

+0

FYI我發現了'python-gpgme'的原始代碼克隆[從launchpad到github](https://github.com/rshk/pygpgme)by [Samuele Santi](https://github.com/rshk),目的是爲程序員添加文檔和其他奢侈品。 – ankostis 2015-12-07 16:28:28