ezPycrypto

Probleme bei der Installation?
Antworten
joh#
User
Beiträge: 139
Registriert: Freitag 6. November 2009, 13:16

Guten Abend,

unter ubuntu komme ich mit ezPyCrpto
http://www.freenet.org.nz/ezPyCrypto/
gut zurecht, aber unter win XP bekomme ich es nicht
installiert. Wer benutzt das auch, hat es installiert bekommen
bzw. weis wie man den Autor kontaktieren kann?

Danke
joh
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

joh# hat geschrieben:bzw. weis wie man den Autor kontaktieren kann?
freenet.org.nz hat geschrieben:david at freenet dot org dot nz
Achja, die Seite sagt auch, dass ezPyCrypto durch SSLCrypto, vom selben Autor, ersetzt wurde.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
joh#
User
Beiträge: 139
Registriert: Freitag 6. November 2009, 13:16

Leonidas hat geschrieben:
joh# hat geschrieben:bzw. weis wie man den Autor kontaktieren kann?
freenet.org.nz hat geschrieben:david at freenet dot org dot nz
Den gibts wohl (dort) nicht mehr:

Code: Alles auswählen

The following address(es) failed:

  d#v#d@fr##n#t.#rg.nz
    SMTP error from remote mail server after RCPT TO:<d#v#d@fr##n#t.#rg.nz>:
    host freenet.org.nz [74.220.202.14]: 550 No Such User Here"
(die # stammen von mir)
[/quote]
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich hab jetzt bischen nachgeforscht, der Autor ist nicht mehr sonderlich aktiv. ich würde dir einfach vorschlagen eine andere Lib zu verwenden und gut is.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
joh#
User
Beiträge: 139
Registriert: Freitag 6. November 2009, 13:16

Leonidas hat geschrieben:. . . andere Lib zu verwenden und gut is.
welche empfielt denn die community?
Einfache Handhabung (Installation und API) würde mir in diesem Fall
vor Geschwindigkeit und evtl auch vor Sicherheit gehen.

Gruß
joh
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

I'm not getting paid for being Mr. Nice Guy!
joh#
User
Beiträge: 139
Registriert: Freitag 6. November 2009, 13:16

querdenker hat geschrieben:Suche im pypi
danke, pypi kannte ich noch nicht :0
joh#
User
Beiträge: 139
Registriert: Freitag 6. November 2009, 13:16

Leonidas hat geschrieben:Ich hab jetzt bischen nachgeforscht, der Autor ist nicht mehr sonderlich aktiv. ich würde dir einfach vorschlagen eine andere Lib zu verwenden und gut is.
... ok jetzt bin ich also bei yawPyCrypto-0.1.1 gelandet, funkt. unter linux auch problemlos
bei WinXP/py2.6/pycrypto2.3 (binaerpacket installiert) klemmt erneut die Säge:

Code: Alles auswählen

AttributeError: RandomPool instance has no attribute 'save'
und
AttributeError: 'module' object has no attribute 'PersistentRandomPool'
(file yawPyCrypto-0.1.1\yawPyCrypto\_Randpool.py", line 46)
hat das jemand am laufen?? Ich brauch' mal einen Tipp zur Fehlersuche.

Gruß
joh
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Warum nicht einfach PyCrypto nutzen?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
joh#
User
Beiträge: 139
Registriert: Freitag 6. November 2009, 13:16

Leonidas hat geschrieben:Warum nicht einfach PyCrypto nutzen?
ja gerne, zumal es nur darum geht, einfach "einen String mit einem Passwort
zu ver/entschlüsseln". Um es zwischen lin und winXP hin und her zu kopieren.
Nur ergaben die Suche danach wenig Beispiele (daran lerne ich am liebsten)

Und die Tatsache daß schon Heerscharen dafür einen wrapper geschrieben
haben, lässt es für mich ein wenig schwierig erscheinen.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hier ist ein Beispielcode. Das schwierige ist ist wohl das korrekte Padding (und ich habe so meine Zweifel ob mit '{' padden eine gute Idee ist), aber du kannst auch überlegen einen Modus wie Cipher-Feedback (CFB), Output-Feedback (OFB) oder Counter (CTR) zu setzen, die nicht erfordern, dass die Daten gepadded werden. Oder einen Stream-Cipher nutzen (wobei CTR dem dann ziemlich nahe kommt).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Whitie
User
Beiträge: 216
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

Hallo joh#,
das Padding könnte man etwa so machen (ungetestet):

Code: Alles auswählen

def add_pad_bytes(data, block_size):
    pad_bytes = block_size - len(data) % block_size
    if pad_bytes == 1:
        data += chr(1)
    elif pad_bytes > 1:
        data += os.urandom(pad_bytes - 1) + chr(pad_bytes)
    else:
        # pad_bytes = 0
        data += os.urandom(block_size - 1) + chr(block_size)
    crypted = encrypt_here(data)
    return crypted

def remove_pad_bytes(data):
    plain = decrypt_here(data)
    pad_length = ord(plain[-1])
    return plain[:-pad_length]
An den Stellen encrypt_here und decrypt_here musst du deine Verschlüsselung/Entschlüsselung durchführen.

Gruß
Whitie
Benutzeravatar
Whitie
User
Beiträge: 216
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

Hallo,
wenn es nur um Strings geht (nicht zu lang) könntest du auch eine reine Python Variante nutzen. Geschwindigkeit ist dann nicht so wichtig und die Installation ist ganz einfach (eine Datei). Guck mal hier.

Gruß
Whitie
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Problem: Sicherheit ungewiss, da es nicht ganz trivial ist, Verschlüsselung korrekt zu implementieren. Deswegen setzt man da gerne auf auditierten Code. Übrigens auch der Grund warum GPGME existiert - die GPG-Autoren trauen den Leuten nicht zu, GPG als Shared Lib richtig, sicher zu nutzen, daher bieten sie ein Binding an, dass auf Subprozessen basiert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Whitie
User
Beiträge: 216
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

Das ist sicher richtig. Es kommt auf den Einsatzzweck an. Zumindest das Padding kann man mit PyCrypto nutzen. Um ein paar "Strings" auszutauschen würde ich die Pythonvariante privat auch nutzen. Für alles Andere sind getestete "offizielle" Verschlüsselungsprogramme natürlich pflicht.

Gruß
Whitie
joh#
User
Beiträge: 139
Registriert: Freitag 6. November 2009, 13:16

Danke sage ich vergnügt,
das genügt.
:)
joh#
User
Beiträge: 139
Registriert: Freitag 6. November 2009, 13:16

eine Sache noch....:

Wie erkenne ich denn, ob der richtige Key beim decrypten benutzt wurde:

Code: Alles auswählen

a = AES.new(key, AES.MODE_CBC, iv)
decrypted = a.decrypt(enc_data)
auch wenn key falsch ist, wird anstandslos decrypted, nur das als Ergebnis
eben nur Müll herauskommt. Eine der beiden Zeilen muß es doch merken....?
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Wie sollen es die Zeilen denn merken? Bits sind Bits, Bytes sind Bytes.

Ohne den Klartext zu kennen kann man nicht sagen, ob der Schlüssel korrekt war. Wenn du an Software denkst die erkennt ob der Schlüssel korrekt war: Die kennen zumindest ein Teil des Klartexts. D.h. am Anfang des Klartexts steht sowas wie "Wenn du das siehst, stimmte der Schlüssel"
Antworten