Config-Datei verschlüsseln
ConfigParser() readstring möglich?
Da wir anfangs mal den `ConfigParser` angeschnitten hatten: Der soll mir meine INI ja einlesen. Zuvor muss ich sie eben nur decodieren.
Das Problem was ich grad entdeckt hab: `ConfigParser` kann nur von einem Fileobject lesen. Ich kann keinen String übergeben. Wie löst man dieses Problem? Kann ich eine Art virtuelles Fileobject erstellen, welches nicht erst auf Platte geschrieben werden muss?
Das Problem was ich grad entdeckt hab: `ConfigParser` kann nur von einem Fileobject lesen. Ich kann keinen String übergeben. Wie löst man dieses Problem? Kann ich eine Art virtuelles Fileobject erstellen, welches nicht erst auf Platte geschrieben werden muss?
- jens
- Moderator
- Beiträge: 8458
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
"suche pure Python crypt Algo...": http://www.python-forum.de/topic-8075.html
btw. Um es wirklich sicher zu machen, müßte man IMHO ein Master-Passwort nehmen, welches der User eingeben muß, um die anderen Passwörter "freizuschalten"... Ohne so etwas ist das ganze nur ein leicht zu durchschauendes durcheinander würfeln...
btw. Um es wirklich sicher zu machen, müßte man IMHO ein Master-Passwort nehmen, welches der User eingeben muß, um die anderen Passwörter "freizuschalten"... Ohne so etwas ist das ganze nur ein leicht zu durchschauendes durcheinander würfeln...
CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Jaja... ist mir schon klar. Man muss halt immer nur sehen, wo die Grenze zwischen Aufwand und Nutzen liegt. Normalerweise würde ich das gar nicht verschlüsseln, weil nur ich vor diesem Rechner sitze. Aber es könnte ja sein, dass ich mal jemanden ran lasse und kurz in der Küche verschwinde... und wenn da einfach der falsche Ordner zur falschen Zeit offen ist kann eine neugierige Nase sofort reinschauen und Passwörter lesen.
Das ist das Einzige, das es zu verhindern gilt. Aber grundsätzlich geb ich euch natürlich recht.
Wie kann man denn mit Python eine AES-Verschlüsselung realisieren? Kenne Tools, die ihre Configs komplett AES-verschlüsselt ablegen. Liegt der Key zum Decoden dann direkt im Binary des Programms? Kann man den Decompilen oder anderweitig rankommen?
Das ist das Einzige, das es zu verhindern gilt. Aber grundsätzlich geb ich euch natürlich recht.
Wie kann man denn mit Python eine AES-Verschlüsselung realisieren? Kenne Tools, die ihre Configs komplett AES-verschlüsselt ablegen. Liegt der Key zum Decoden dann direkt im Binary des Programms? Kann man den Decompilen oder anderweitig rankommen?
droptix hat geschrieben:Wie kann man denn mit Python eine AES-Verschlüsselung realisieren?
Das von dir erwähnte pycrypto wäre dazu geeignet... Mit ein bisschen Code außenrum kann man pycrypto auch zum Verschlüsseln von Konfigurationsdateien verwenden. Wenn du aber sowieso schon pycrypto installierst, kannst du stattdessen auch gleich auf gpg zurückgreifen, und daszur AES-Verschlüsselung verwenden.
Kenne Tools, die ihre Configs komplett AES-verschlüsselt ablegen. Liegt der Key zum Decoden dann direkt im Binary des Programms? Kann man den Decompilen oder anderweitig rankommen?
Das macht aber wenig Sinn, da man Python-Bytecode immer noch relativ gut analysieren kann. Da könntest du den Schlüssel auch direkt in einer Klartextdatei ablegen

Wirklich sicher wäre es es, beim Start ein Passwort zu verlangen, und den den mehrfachen Sha1-Hash mit Salt als Schlüssel für den Algorithmus zu verwenden... Das wird dann allerdings aufwendiger... Ich kann meine Empfehlung nur wiederholen


AES rein Pythonisch
Da muss ich jetzt mal doof fragen: AES ist doch einfach nur ein mathematischer Algorithmus wie andere Codecs auch. Das Verfahren kann man doch rein in Python implementieren, also als Modul und nicht als C-Variante, die für das Betriebssystem compiliert vorliegen muss. Ist schon klar, dass die C-Variante Geschwindigkeitsvorteile bringt. Bei einer 20-zeiligen INI-Datei weiß ich aber nicht inwiefern das ins Gewicht fällt.
Dann könnte man seinem plattformunabhängigen Python-Programm einfach das Modul anhängen und los geht's! Auf externe Binaries könnte verzichtet werden. Gibt's das?
Dann könnte man seinem plattformunabhängigen Python-Programm einfach das Modul anhängen und los geht's! Auf externe Binaries könnte verzichtet werden. Gibt's das?
Re: AES rein Pythonisch
droptix hat geschrieben:Da muss ich jetzt mal doof fragen: AES ist doch einfach nur ein mathematischer Algorithmus wie andere Codecs auch. Das Verfahren kann man doch rein in Python implementieren, also als Modul und nicht als C-Variante, die für das Betriebssystem compiliert vorliegen muss. Ist schon klar, dass die C-Variante Geschwindigkeitsvorteile bringt. Bei einer 20-zeiligen INI-Datei weiß ich aber nicht inwiefern das ins Gewicht fällt.
Dann könnte man seinem plattformunabhängigen Python-Programm einfach das Modul anhängen und los geht's! Auf externe Binaries könnte verzichtet werden. Gibt's das?
Jepp... natürlich gibt es pure-python AES Algorithmen:
http://tlslite.cvs.sourceforge.net/tlsl ... iew=markup
http://tlslite.cvs.sourceforge.net/tlsl ... iew=markup
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
Wiso nicht die daten im binär abspeichern?
Also mit zlib compress und zum lesen decompress in der form die dieser compress gespeichert wird kann man ihn nicht lesen.
Je nach Codierung sieht es echt Cryptisch aus
Also mit zlib compress und zum lesen decompress in der form die dieser compress gespeichert wird kann man ihn nicht lesen.
Code: Alles auswählen
>>> import zlib
>>> zlib.compress("User:Ich bin ein PW")
'x\x9c\x0b-N-\xb2\xf2L\xcePH\xca\xccSH\x05\xe2\x80p\x00BG\x06j'
>>> zlib.decompress(_)
'User:Ich bin ein PW'
>>> print zlib.compress(_)
x?-N-?òLÎPHÊÌSHâ?p
Je nach Codierung sieht es echt Cryptisch aus

Wer ist online?
Mitglieder in diesem Forum: Bing [Bot]