USB-Stick Verschlüsseln Unterordner

  • Hallo zusammen ich war länger weg und will jetzt aber wieder beginnen mehr mit Autoit zu arbeiten.
    Mein erstes Projekt stellt mich allerdings jetzt schon vor Probleme :(

    Einzelne Dateien zu verschlüsseln ist an sich nicht das Problem aber Ordner.
    Ich habe mir in AKrypto (sehr schönes Programm hier aus dem Forum) mal ein paar Funktionen angesehen aber komme nicht ganz dahinter...

    Aus der Hilfe:


    Damit kann ich alle Dateien anzeigen lassen die in einem Ordner sind. Allerdings werden auch die Ordner als Datei angezeigt und nicht die Unterordner.

    Meine Frage ist also wie kann ich einen Stick mit mehreren Ordnern und Unterordnern mit Autoit "halbwegs" sicher verschlüsseln? Muss keine Nuklearcodes oder sonstwas verstecken... ;D

    Aus Akrypto:

    Irgendwo da müsste der Trick sein oder?

    Danke!

  • Das könnte dir weiter helfen:

    https://www.autoitscript.com/forum/topic/89155-whats-the-bestfastest-recursive-file-search-func/?do=findComment&comment=640648

    Die Crypto-Funktionen findest du in der Crypt.au3 :) Good luck.

    Der "Trick" ist übrigens hier:

    "StringInStr(FileGetAttrib($sSourceC & $sObjectC),"D")"

    Er guckt, ob die gefundene "Datei" das Flag "D" gesetzt bekommen hat. D = Directory = Ordner

    Es gibt Tage, da trete ich nicht ins Fettnäpfchen. Ich falle in die Friteuse.

  • Hey danke für die Antwort. Eine Funktion zum auflisten aller Dateien und auch der Dateien in Unterordnern habe ich mittlerweile auch hier im Forum gefunden:


    Das funktioniert super! Allerdings habe ich es noch nicht hinbekommen die Dateien dann auch zu verschlüsseln und das Eventuell auch wieder rückgängig zu machen...

    Die Idee ist, das das Programm selber beim Verschlüsseln eine Datei anlegt um zu Kennzeichnen das die Dateien Verschlüsselt sind. In dem Ordner mit dem Programm und den Dateien ist sonst nichts.
    Wenn die Datei nicht existiert bedeutet es im Umkehrschluss das die Dateien nicht verschlüsselt worden sind. Dann soll verschlüsselt werden. Ohne weitere GUI usw. (kann ich sonst auch noch machen wenn ich doch eine brauche) Passwort wird natürlich nicht im Script hinterlegt!
    Beim Entschlüsseln muss natürlich die alte Ordnerstruktur wiederhergestellt werden.

    Hat da noch jemand Tipps? Den Pfad zu den ganzen Dateien kenne ich ja mittlerweile. Muss ich bei der Destination was spezielles beachten? Der Key ist kein Problem und ich nehme AES 256.

    Mein versuch war:

  • Es gibt Tage, da trete ich nicht ins Fettnäpfchen. Ich falle in die Friteuse.

  • Vielen Dank für deine HIlfe!!!!!

    Falls es jemand braucht:

  • Habe jetzt doch noch ein Problem gefunden...
    Momentan kann es passieren, das die Daten mehrfach ver oder auch entschlüsselt werden.
    Dann ist es leider nichtmehr möglich sie wiederherzustellen.

    Kann ich irgendwie prüfen ob bereits verschlüsselt worden ist? Eventuell über die dann ja geänderte Dateiendung?
    Aktuell mache ich das ja über eine .ini in der auch das Passwort abgelegt wird um zu sehen ob das Passwort richtig ist und nur dann zu entschlüsseln aber eigentlich will ich das Passwort nirgendwo ablegen sondern prüfen ob die Entschlüsselung erfolgreich war. @Error gibt aber 0 zurück egal welches Passwort ich nehme.


  • Wie ich gestern noch schreiben wollte:

    "Aus Endnutzer-Sicht hochriskant:
    Es besteht die Möglichkeit die Daten mehrfach zu verschlüsseln, weil jemand "die komische Datei da" gelöscht hat, genau wie die Möglichkeit besteht, dass gar nicht mehr entschlüsselt werden kann - aus selben Grund. Die Datei ansich erfüllt also keinen tieferen Zweck als "ist da"."

    Ja, du kannst das prüfen. Dazu müsstest du die Funktionen allerdings anpassen - zum entschlüsseln bräuchtest du zum Beispiel den Dateifilter "\.crypt". Für das andere brauchst du entweder einen hochkomplexen RegEx, oder du musst die Funktion einmal komplett umkehren...

    Es gibt Tage, da trete ich nicht ins Fettnäpfchen. Ich falle in die Friteuse.

  • Ja das stimmt leider...Die Datei DARF nicht gelöscht werden aber Anwenderfreundlich ist was anderes das stimmt.
    Ich wollte jetzt so abfragen ob Dateien mit der Endung .crypt bestehen:


    Und dann halt $Test abfragen welchen Wert es hat. leider funktioniert das nicht da man dennoch doppelt entschlüsseln kann (scheint aber keinen Schaden anzurichten)

    Hast du noch eine Idee?
    Gesamtes Skript:

  • Ich habe die Funktion tatsächlich einfach umgedreht... ;) In das Array wird reingeschrieben, wenn es eben NICHT auf das RegEx passt. Bedeutet: Gleiches RegEx für beide.

    Spoiler anzeigen

    Vorteil bei dieser Methodik:

    Wenn du die Funktion "_EncryptFolder" aufrufst, werden nur die verschlüsselt, die noch nicht verschlüsselt sind - und umgekehrt. Das bedeutet, dass es nicht nur Nutzerfreundlicher wird, sondern dass es auch scheiß egal ist, wie du drum rum programmierst. In jedem Fall funktioniert das verschlüsseln / entschlüsseln. Theoretisch müsstest du nicht mal prüfen, ob der Schlüssel passt - sonst müsstest du ihn ja speichern, und das wäre Prinzip "Haustürschlüssel von außen in der Haustüre".

    Einfach versuchen zu entschlüsseln mit dem Key, den er mitgegeben hat. Wenn es der Falsche war, wird die Datei dann eben noch weiter verschlüsselt. Dann müsste er die Datei *verschlüsseln* mit dem letzten Key, damit die Datei wieder im Ursprungszustand existiert... irgendwie ironisch. x)

    Es gibt Tage, da trete ich nicht ins Fettnäpfchen. Ich falle in die Friteuse.