hallo & guten abend liebe leute,
ich würde gerne wissen wie ich eine ini-datei decrypten kann, ohne sie zum auslesen auf die festplatte zu droppen.
hat jemand eine idee ?
ini datei decrypten ohne zu droppen?
-
- [ gelöst ]
-
WhiteLion -
21. Mai 2011 um 20:57 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
Bullshit-Bingo!?
Beschreib bitte mit einfachen, klaren Worten, was du willst und warum…
Johannes
-
ich möchte meine ini datei crypten (die komplette datei).
zum lesen der werte brauch ich sie natürlich decrypted.
ich möchte sie dann natürlich nicht wieder decrypted auf die festplatte droppen, sonst wäre das crypten ja sinnlos.
wie encrypte ich die ini im ram und lese die werte von dort ?
oder gibt es andere möglichkeiten ? -
Wie wärs mit einlesen (FileRead) und dann den Wert entschlüsseln??:
[autoit]
Grob so:
[/autoit]
$file=FileRead("crypt.ini")
$decryptfile=_Crypt_DecryptData($file,"derKEY",...)Crypt.au3 halt noch includen und starten
-
Zitat
Übersetzung:
Ich möchte eine .ini Datei verschlüsselt speichern.
Um mit den Werten arbeiten zu können, muss ich sie natürlich wieder entschlüsseln. Allerdings will ich es vermeiden, die Datei im entchlüsselten Zustand auf der Festplatte abzulegen, während mein Skript darauf zugreift. Wie entschlüssele ich die Datei im RAM um die Daten von dort auszulesen?
Oder gibt es Alternativen.Verschlüssle nicht die gesammte Datei, sondern Werte und SChlüssel einzelnen.
_StringEncrypt() -
danke, leider waren mir die beiden lösungen bekannt... ich hatte gehoffte es ginge auch mit der ganzen datei.
-
du kannst doch mit FileRead die verschlüsselte Datei in den Speicher einlesen.
Was Du mit dem Inhalt der Variable dann machst bleibt doch Dir überlassen ...Decrypten, StringSplit ($var,'='), etc...
Ini-Funktionen für Dein Vorhaben müsstest Du aber erst noch scripten.
Beispiel:Spoiler anzeigen
[autoit]#include <GuiConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <String.au3>
FileDelete(@ScriptDir & '\test.ini')
filewrite(@ScriptDir & '\test.ini', _StringEncrypt(1,'[Testkey]'&@CRLF&'Wert1=blablabla'&@CRLF&'Wert2=blubblubblub', 'meinPasswort',1))_inicrypt()
[/autoit] [autoit][/autoit] [autoit]Func _inicrypt()
[/autoit]
$var = _StringEncrypt(0,FileRead(@ScriptDir & '\test.ini'), 'meinPasswort',1)
MsgBox(0, '', $var)
EndFunc -
okey, mal angenommen ich habe per fileread meine ini im speicher, dann müsste ich die auseinanderpflücken...etc. das wird schwer, weils sehr viele sind. oder gibt es dafür eine udf ?
-
keiner hat gesagt, dass dein Vorhaben leicht ist.
Wobei ein bischen StringSplit etc ... naja, das ist doch nicht so schwer.Zu deiner Frage nach einer UDF...
ZitatIni-Funktionen für Dein Vorhaben müsstest Du aber erst noch scripten.
-
Ansonsten wie gesagt, du könntest die Schlüssel und Werte einzeln crypten und dann in die ini Datei schreiben. Da bräuchstes du nichteinmal groß was scripten. Denn niemand kann eine gut, verschlüsselte Datei lesen, außer mit einer Brutforce attack (welche du, indem du verschiedene passwörter benutzt verhindern kannst)
-
Wozu eine Ini verwenden ?
http://de.wikipedia.org/wiki/Initialisierungsdatei
Programmeinstellungen für die "Ini"tialisierung eines Programms sollte man, wenn sie in einer Ini stehen grundsätzlich nicht verschlüsseln, falls man mal was manuell ändern möchte.
Wenn du größere Sachen Speichern willst solltest du einfach eine Eigene Speichermethode entwickeln mit String Split.
Beispiel
z.B. eine Leveldatei (vom TD wo ich grade dran sitze) sieht unkomprimiert so aus:CodeDER_ERSTE_KONTAKT,10122194491463361334632674871821,8,3;10;10;0;0.35;17;9;0;30;4|3;10;12;0;0.35;18;11;0;30;7|3;10;15;0;0.35;19;12;0;30;8|3;10;17;0;0.35;18;9;0;30;9|3;11;21;0;0.36;20;11;0;31;11|3;11;24;0;0.37;19;14;0;32;12|3;12;27;0;0.38;21;13;0;33;13|3;12;31;0;0.39;22;16;0;33;16
Als erstes wird mit einem Komma "," gesplittet.
Der erste Wert ist so direkt auslesbar: Der Name des Levels
Im 2ten Wert stecken die wegpunkte für meine Monster (TD eben) Auch direkt zugänglich.
Im 3ten steht die Anzahl Wellen.
Im 4ten sind alle Wellen mit ihren Werten gesichert.
Dazu wird der 4te erst mit "|" getrennt um die einzelnen Wellen zu erhalten und anschließend mit ";" nochmals um alle Werte zu den Wellen zu bekommen.Sowas kann man ohne etwas auf der Festplatte zu hinterlassen im Programm nutzen.
lg
-
danke, ich denke ich werde es mal mit der stringsplittvariante testen... allerdings erst später.