Seite 1 von 1

ezPycrypto

Verfasst: Sonntag 13. November 2011, 16:42
von joh#
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

Re: ezPycrypto

Verfasst: Montag 14. November 2011, 01:22
von Leonidas
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.

Re: ezPycrypto

Verfasst: Dienstag 15. November 2011, 14:00
von joh#
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]

Re: ezPycrypto

Verfasst: Dienstag 15. November 2011, 14:17
von Leonidas
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.

Re: ezPycrypto

Verfasst: Dienstag 15. November 2011, 22:23
von joh#
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

Re: ezPycrypto

Verfasst: Freitag 18. November 2011, 13:35
von querdenker

Re: ezPycrypto

Verfasst: Freitag 25. November 2011, 10:17
von joh#
querdenker hat geschrieben:Suche im pypi
danke, pypi kannte ich noch nicht :0

Re: ezPycrypto

Verfasst: Freitag 25. November 2011, 10:31
von joh#
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

Re: ezPycrypto

Verfasst: Freitag 25. November 2011, 19:25
von Leonidas
Warum nicht einfach PyCrypto nutzen?

Re: ezPycrypto

Verfasst: Freitag 25. November 2011, 21:28
von joh#
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.

Re: ezPycrypto

Verfasst: Samstag 26. November 2011, 05:05
von Leonidas
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).

Re: ezPycrypto

Verfasst: Samstag 26. November 2011, 08:38
von Whitie
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

Re: ezPycrypto

Verfasst: Samstag 26. November 2011, 08:48
von Whitie
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

Re: ezPycrypto

Verfasst: Samstag 26. November 2011, 09:16
von Leonidas
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.

Re: ezPycrypto

Verfasst: Samstag 26. November 2011, 11:05
von Whitie
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

Re: ezPycrypto

Verfasst: Mittwoch 30. November 2011, 09:53
von joh#
Danke sage ich vergnügt,
das genügt.
:)

Re: ezPycrypto

Verfasst: Freitag 2. Dezember 2011, 11:02
von joh#
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....?

Re: ezPycrypto

Verfasst: Freitag 2. Dezember 2011, 11:16
von cofi
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"