Python Modul PyCrypto und Blowfish
Verfasst: Mittwoch 21. August 2013, 14:57
Hallo,
seit ein paar Tagen beschäftige ich mich mit PyCrypto und Blowfish. Bis gestern ohne allzu große Schwierigkeiten. Seit gestern versuche ich Blowfish mit dem Modus MODE_CTR zu betreiben was mir nicht gelingt. Für die später zu programmierende Anwendung könnte ich auf diesen Modus verzichten. Nur dieses "nicht wollen" nervt... :K .
Wie man Blowfish in diesen Modus betreibt dazu schweigt die Dokumentation leider eisern. So konnte ich bis jetzt nur rumprobieren. Ich bin jetzt so weit das keine Exceptions mehr ausgelöst werden, aber ob die Verschlüsselung richtig ist, kann ich nicht nachvollziehen den die Entschlüsselung funktioniert leider überhaupt nicht. Hier mein bisheriger Versuch:
Ich habe mich da in etwas verrannt, vielleicht gibt es ja hier jemand der mich auf den Richtigen Weg zurück führen kann. Wenn nicht lass ich es halt 
seit ein paar Tagen beschäftige ich mich mit PyCrypto und Blowfish. Bis gestern ohne allzu große Schwierigkeiten. Seit gestern versuche ich Blowfish mit dem Modus MODE_CTR zu betreiben was mir nicht gelingt. Für die später zu programmierende Anwendung könnte ich auf diesen Modus verzichten. Nur dieses "nicht wollen" nervt... :K .
Wie man Blowfish in diesen Modus betreibt dazu schweigt die Dokumentation leider eisern. So konnte ich bis jetzt nur rumprobieren. Ich bin jetzt so weit das keine Exceptions mehr ausgelöst werden, aber ob die Verschlüsselung richtig ist, kann ich nicht nachvollziehen den die Entschlüsselung funktioniert leider überhaupt nicht. Hier mein bisheriger Versuch:
Code: Alles auswählen
# Python 3.3
from Crypto.Cipher import Blowfish
from Crypto.Random import get_random_bytes
from Crypto.Util.number import bytes_to_long, long_to_bytes
MSG1 = "Hallo ihr Vögel.\n".encode()
PASSWORT = b'GeHeIm'
class MyCounter(object):
def __init__(self, nonce):
self.c = bytes_to_long(nonce)
def __call__(self):
self.c += 1
return long_to_bytes(self.c)
def CTR_1():
nonce = get_random_bytes(8)
cipher = Blowfish.new(PASSWORT, Blowfish.MODE_CTR, counter = MyCounter(nonce))
geheim = cipher.encrypt(MSG1)
print("Verschlüsselte Nachricht:\n")
print(geheim)
print("\nEndschlüsselte Nachricht:\n")
klartext = cipher.decrypt(geheim)
print(klartext)
