Seite 1 von 1
rot13 um eine log Datei zu verschlüsseln
Verfasst: Sonntag 11. Juli 2010, 14:07
von JohnR
Hallo
Ich möchte eine erzeugte log Datei verschlüsseln und dazu rot13 als System verwenden.
Das rot13 nicht das Maß der Dinge ist ist mir klar, aber es geht auch nur darum das nicht jeder unmittelbar an die Daten kommt falls sie ihm mal in die Hände fallen sollten.
"gelöst" habe ich das ganze mit meinen bescheidenen Pythonkenntnissen so
Code: Alles auswählen
message = ProtocolMsg(self.bl, None, "message", text.encode("UTF-8"))
message.send(self)
file = open(self.logging(), "a")
file.write('[log ] '.decode("rot13") + text.encode('utf-8').decode("rot13") + '[time ]'.decode("rot13") + time.strftime('%d.%m.%Y.%H.%M', time.gmtime()).decode("rot13") + '[IP ] '.decode("rot13") + self.getip().decode("rot13") + '\n')
file.close()
nun habe ich aber den Effekt das die Zeitangabe und die IP-Angabe immer noch unverschlüsselt sind
was mache ich denn da jetzt falsch, oder ist rot13 dafür gar nicht geeignet da es nur Buchstaben versetzt ?
Gruß John
Re: rot13 um eine log Datei zu verschlüsseln
Verfasst: Sonntag 11. Juli 2010, 14:18
von DaMutz
Code: Alles auswählen
In [1]: "123456".decode("rot13")
Out[1]: u'123456'
In [2]: "abcdefg".decode("rot13")
Out[2]: u'nopqrst'
Zahlen werden nicht rotiert. Aber du kannst ja die rot13 Funktion mit Zahlen erweitern...
Re: rot13 um eine log Datei zu verschlüsseln
Verfasst: Sonntag 11. Juli 2010, 14:22
von JohnR
o.k. Danke
die Frage ist nur ob ich das kann
Gibt es einen besseren Weg also ein System wie rot13 was im standard verfügbar ist und die Zahlen auch mit rotiert ?
Re: rot13 um eine log Datei zu verschlüsseln
Verfasst: Sonntag 11. Juli 2010, 15:18
von b.esser-wisser
xor (müsstest du aber selber schreiben), base64, gzip ...
hth, Jörg
Re: rot13 um eine log Datei zu verschlüsseln
Verfasst: Sonntag 11. Juli 2010, 16:13
von JohnR
o.k. base64 sieht recht vielversprechend aus, werde damit mal etwas rumspielen.
Re: rot13 um eine log Datei zu verschlüsseln
Verfasst: Montag 12. Juli 2010, 15:01
von JohnR
habe mir jetzt mal
http://docs.python.org/library/base64.h ... _b64decode
zu Gemüte geführt, scheitere aber immer wieder schon an dem Beispiel.
Code: Alles auswählen
>>> import base64
>>> encoded = base64.b64encode('data to be encoded')
>>> encoded
'ZGF0YSB0byBiZSBlbmNvZGVk'
>>> data = base64.b64decode(encoded)
>>> data
'data to be encoded'
ich bekomme immer nur
Code: Alles auswählen
AttributeError: 'module' object has no attribute 'b64encode'
warum ?
liegt das daran das ich Python in Version 2.5 verwende ?
oder stelle ich mich einfach zu bl** an :K
Re: rot13 um eine log Datei zu verschlüsseln
Verfasst: Montag 12. Juli 2010, 15:33
von BlackJack
Wie sieht denn `base64.__file__` aus? Hast Du vielleicht zufällig selber ein Modul mit dem Namen `base64.py` erstellt? *Das* hat die Funtkion dann ja wahrscheinlich nicht.

Re: rot13 um eine log Datei zu verschlüsseln
Verfasst: Montag 12. Juli 2010, 17:04
von DaMutz
Warum nicht so?
Code: Alles auswählen
In [1]: "abcdefgh12345".encode("base64")
Out[1]: 'YWJjZGVmZ2gxMjM0NQ==\n'
Spricht da etwas dagegen oder gibt es das nicht mit Python 2.5?
Re: rot13 um eine log Datei zu verschlüsseln
Verfasst: Montag 12. Juli 2010, 17:25
von Darii
Echte Kerle nehmen eh
Kenny statt rot13.
*SCNR*
Re: rot13 um eine log Datei zu verschlüsseln
Verfasst: Montag 12. Juli 2010, 18:19
von BlackJack
Aber bitte selber implementieren und nicht den furchtbaren Python-Code von der Seite verwenden.
Re: rot13 um eine log Datei zu verschlüsseln
Verfasst: Montag 12. Juli 2010, 19:47
von JohnR
hm o.k. mir hat einfach das Modul gefehlt :K
wenn ich das ganze jetzt aber auf das obige skript anwende
Code: Alles auswählen
file.write('[log ] '.encode("base64") + text.encode("base64") + '[time ]'.encode("base64") + time.strftime('%d.%m.%Y.%H.%M', time.gmtime()).encode("base64") + '[IP ] '.encode("base64") + self.getip().encode("base64") + '\n')
bekomme ich das
Code: Alles auswählen
W2xvZyBdIA==
RGllcyBpc3QgZWluIFRlc3QgISQmPyAwODE1NDcxMg==
W3RpbWUgXQ==
MTIuMDcuMjAxMC4xOC4yOQ==
W0lQIF0g
OTIuMjUwLjE5Ni4xMjA=
wenn ich das dann wieder dekodiere bekomme ich dann das
Code: Alles auswählen
[log ] F–W2—7BV–âFW7BBcòƒSCs [time ]"ãrã#ã‚ã#�[IP ] 92.250.196.1
Das ist irgendwie nicht ganz Plaintext
Kann es sein das es daran liegt das ich alles einzeln ins base64 encode ?
Re: rot13 um eine log Datei zu verschlüsseln
Verfasst: Montag 12. Juli 2010, 20:02
von BlackJack
Ja das liegt daran. Das hättest Du aber nun auch ziemlich einfach ausprobieren können.
Re: rot13 um eine log Datei zu verschlüsseln
Verfasst: Montag 12. Juli 2010, 20:49
von JohnR
ja aber wenn ich die ganze Datei als base64 dekodiere und sie wird beim nächsten log wieder geöffnet und wieder dekodiert, dann habe ich doch die vorhergehende Zeile doppelt dekodiert.
Also müßte ich doch bei dem Ansatz bleiben die Zeile einzeln als .base64 zu dekodieren.
Aber wie mache ich das
Code: Alles auswählen
file.write('[log ] '.encode("base64") + text.encode("base64") + '[time ]'.encode("base64") + time.strftime('%d.%m.%Y.%H.%M', time.gmtime()).encode("base64") + '[IP ] '.encode("base64") + self.getip().encode("base64") + '\n')
funktioniert wenn auch alles andere als leicht wieder encodierbar
aber die ganze Zeile auf einmal, das bekomme ich irgendwie nicht hin :K
Also sorry das kann schon sein das das recht komische Fragen sind, aber ich hab mit Python noch "leicht" Probleme, was ja nicht heißen soll das ich mir keine Mühe gebe
Gruß John
Re: rot13 um eine log Datei zu verschlüsseln
Verfasst: Montag 12. Juli 2010, 20:58
von BlackJack
@JohnR: Ich verstehe jetzt nicht wo das Problem ist!? Du musst die Zeile aus den Einzelteilen erstellen und die dann kodieren. Statt wie jetzt die Einzelteile zu kodieren und daraus die Zeile zu erstellen.
Re: rot13 um eine log Datei zu verschlüsseln
Verfasst: Dienstag 13. Juli 2010, 15:03
von JohnR
o.k. habs dann gelöst
ob nun gut oder schlecht das kann ich nicht wirklich beurteilen, aber es funktioniert
Code: Alles auswählen
file = open(self.logging(), "a")
log = ('[log ] ' + text + '[time ]' + time.strftime('%d.%m.%Y.%H.%M', time.gmtime()) + '[IP ] ' + self.getip() + '\n')
file.write(log.encode("base64"))
file.close()
Re: rot13 um eine log Datei zu verschlüsseln
Verfasst: Dienstag 13. Juli 2010, 19:28
von cofi
Jetzt willst du dir aber das `with`-Statement und `String formatting` anschaun.
Re: rot13 um eine log Datei zu verschlüsseln
Verfasst: Mittwoch 14. Juli 2010, 21:09
von sma
Auch wenn's kein hilfreicher Beitrag zum Thema ist, möchte ich noch kurz anmerken, dass ich ein ungutes Gefühl bekomme, wenn ich "Verschlüsseln" und "rot13" in einem Satz lese. Auch wenn Gallier oder gegen wen Cäsar auch immer gekämpft haben möge vielleicht nicht in der Lage waren, einfache Verschiebechiffre zu dekodieren und dies daher ein Weg war, Truppenbefehle zu transportieren, heutzutage ist das ein Witz und die Verschlüsselung schon mit bloßem Auge zu erkennen. Wenn es darum geht, irgendwelche "persönlichen Daten" (IP-Adressen und so) verschlüsseln zu müssen, ist rot13 kein adäquates Mittel. Ich würde ein Verfahren mit einem "shared secret" wie RC4 oder AES128 empfehlen, wobei man dann natürlich sicherstellen muss, dass der geheime Schlüssel nicht in falsche Hände gerät. Er muss ja dem Programm, dass die Log-Dateien schreibt, bekannt sein (vielleicht enthalten sein) und so etwas kann man natürlich auch super-einfach aus einem Python-Programm ziehen. Landen jedoch die Log-Dateien auf einem anderen Rechner und der Rechner, der verschlüsselt, ist für den, der die Logs sehen kann, nicht einsehbar, ist auch der Schlüssel verborgen und es könnte sein, dass dieser Schutz dem notwendigen Datenschutz genügt. In keinem Fall sollte man jedoch anfangen, sich selbst irgendwelche "Verschlüsselungsverfahren" auszudenken.
Stefan