2008-09-18 5 views
17

Ich möchte einige Dateien mit Python verschlüsseln, was ist der beste Weg Ich kann gpg/pgp mit jedem Standard/berühmten Python-Bibliotheken verwenden?Was ist die beste/einfachste Verschlüsselungsbibliothek in Python

+0

Verschlüsselung ist ein heikles Thema. Fügen Sie weitere Informationen dazu hinzu, was Sie verschlüsseln und warum und wie Ihre App es verwalten muss. Insbesondere müssen Sie darüber sprechen, wie die Geheimnisse verwaltet werden sollen - das bestimmt, ob Sie die Verschlüsselung mit öffentlichen Schlüsseln oder nur ein gemeinsames Geheimnis verwenden sollten. – Allen

+0

Grundsätzlich möchte ich nur einige Konfigurationsdateien verschlüsseln, so dass es nicht lesbar ist, andere Leute zu kaufen, sondern nur mein Programm. Ich möchte keine idiotensichere Lösung hier, weil ich irgendeine Weise haben muss Dateien in meinem Programm zu entschlüsseln oder kann es eine narrensichere Möglichkeit, dies zu tun? –

Antwort

8

PyCrypto scheint der beste zu sein.

+1

Warum sagst du das? –

+0

Es ist umfassend und der ursprüngliche Autor AMK ist ein angesehener Python-Entwickler. –

+0

Ja, aber der aktuelle Betreuer hat keine Freigaben (wie heute geprüft) –

7

Versuchen KeyCzar

Sehr einfach zu implementieren.

4

Siehe Googles Projekt Keyczar, das eine Reihe nützlicher Schnittstellen zu PyCryptos Funktionalität bietet.

6

Ich verwende GPGme Die Hauptstärke von GPGme ist, dass es Dateien im OpenPGP-Standard (RFC 4880) liest und schreibt, was wichtig sein kann, wenn Sie mit anderen PGP-Programmen zusammenarbeiten wollen.

Es hat eine Python interface. Warnung: Es ist eine Low-Level-Schnittstelle, nicht sehr Pythonic.

Wenn Sie Französisch lesen, see examples.

ist hier ein, um eine Signatur zu überprüfen:

signed = core.Data(sys.stdin.read()) 
plain = core.Data() 
context = core.Context() 

context.op_verify(signed, None, plain) 
result = context.op_verify_result() 

sign = result.signatures 
while sign: 
    if sign.status != 0: 
     print "BAD signature from:" 
    else: 
     print "Good signature from:" 
    print " uid:  ", context.get_key(sign.fpr, 0).uids.uid 
    print " timestamp: ", sign.timestamp 
    print " fingerprint:", sign.fpr 
    sign = sign.next 
5

Ich benutze pyOpenSSL, es ist eine Pythonbindung für OpenSSL, die schon seit langer Zeit und ist sehr gut getestet. Ich habe einige Benchmarks für meine Anwendung gemacht, die sehr kryptointensiv ist und gegen pyCrypto gewonnen hat. YMMV.