Liebes Forum Team,
Bin erst vor einem halben Jahr von C++ zu Python gewechselt und bin sehr zufrieden. Eine einzige große Schwierigkeit habe ich allerdings: ich habe in C++ einige Programme basierend auf Crypto++ geschrieben, die unterschiedlichste Kryptoalgorithmen verwenden (teilweise auch hintereinander geschalten). Diese möchte ich durch Python Komponenten ersetzen. Ich bräuchte dafür zumindest folgende Kryptoalgorithmen: AES, CAST256, RC6, Twofish, Serpent, MARS. Eventuell auch Threefish wobei letzterer nicht so dringend ist. Diese sollten sich wiederum hintereinandner schalten lassen und in sämtlichen Modi laufen (ECB, CBC, OFB, CFB, CTR) inklusive PKCS Padding.
Zusätzlich wären noch die üblichen Hashfunktionen wichtig (SHA-*, RIPEMD-*, TIGER und WHIRLPOOL), eventuell auch HMAC mit diesen Funktionen.
Meine erste Idee war es, mir die pycryptopp anzuschauen (als Binding quasi), leider ist diese aber sehr unvollständig (von den benötigten Algorithmen laut Source Code nur AES und SHA256).
Meine Frage wäre es, ob es eine Crypto Bibliothek gibt, wo zumindest eine größere Teilmenge der benötigten Algorithmen vorkommt (sowie Crypto++ für C++). Eventuell alle mit ähnlicher Ansteuerung, sodass die Hintereinanderausführung keine Schwierigkeiten macht. Ich möchte nämlich so wenig wie möglich Abhängigkeiten im Code haben und wäre daher auch über so wenig imports wie möglich sehr froh. Idealerweise braucht jeder Algorithmus genau ein .py file, dass ich mit dem Programm mitliefern kann.
Wäre dankbar für Hinweise.
Liebe Grüße
und vielen Dank
Allgemeine Empfehlung: Kryptographie
PyCrypto ist recht umfangreich und bekannt, wird allerdings seit 2014 nicht mehr weiterentwickelt. Als sein Nachfolger kann PyCryptodome gesehen werden, welches an verschiedenen Stellen modernisiert wurde. Hier die Features:
https://pycryptodome.readthedocs.io/en/ ... tures.html
Selbst wenn dir dabei noch Sachen fehlen, so dürfte es schon einmal eine gute Grundlage für dich sein...
https://pycryptodome.readthedocs.io/en/ ... tures.html
Selbst wenn dir dabei noch Sachen fehlen, so dürfte es schon einmal eine gute Grundlage für dich sein...
cryptography ist vielleicht einen Blick wert.