Klein ist Rijndael ebenso wie andere AES Kanditaten, aber pure python ist halt langsam. Das steht ja auch im docstring des TLSLite Moduls:jens hat geschrieben:Generell würde ich gern was fertiges nehmen. Aber ich hab da folgende Anforderungen, wie ich oben schon mal geschrieben hab:
-Klein soll es sein
-pure Python
A pure python (slow) implementation of rijndael with a decent interface
Naja, ich weiß nicht... Die Datei, die du genannt hast, sieht für mich so aus, als würde sie nur einzelne Blöcke verschlüsseln, d.h. du musst dich nicht nur ums padding kümmern, sondern auch noch um eine korrekte Umsetzung von CBC. Das wird sehr schnell sehr aufwändig und vor allem fehleranfällig...jens hat geschrieben:Wäre natürlich gut, wenn installierte binäre Krypto Module genutzt werden, wenn vorhanden. Damit es auch schneller geht. Ich glaube das kann auch TLSLite. Ich denke mit dem Modul fahre ich am besten.
Das Modul, was ich dir genannt habe, übernimmt wenigstens schon mal das CBC für dich. Ums padding musst du dich leider immer noch selbst kümmern
Außerdem ist wahrscheinlich wesentlich schneller, weil der Hauptteil der Arbeit in C implementiert ist und auch sicherer, weil man in C Speicherbereiche (z.B. den Key oder den IV) zuverlässig löschen kann. Python hat zwar den del Operator, aber es ist eben nicht garantiert, dass die Daten sofort aus dem Speicher verschwinden.
Allerdings ist das alles imo ein ziemliches Trauerspiel Es gibt offenbar keine einfache, schnelle Schnittstelle zum Ver- und Entschlüsseln von Daten mit AES Da ist .NET ein großes Stück weiter; Verschlüsseln ist dort kein großes Problem. Dinge wie padding oder CBC werden da selbstverständlich von der Bibliothek übernommen...
Edit: Gibt es irgendwo einen nopaste Service für dieses Forum? Ich habe mal versucht, ein padding mit dem von mir genannten Modul zu implementieren, dass kann ich dir gerne posten...