Verschlüsselten String in Datei schreiben

  • Hallo,

    Ich möchte einen String verschlüsseln diesen in einer Datei Speichern (um ihn im Späteren verlaufe wieder zu lesen).

    C
    #include <Crypt.au3>
    #include <File.au3>
    $Text = "Test"
    $Text_crypt = _Crypt_EncryptData($Text,"1234", $CALG_RC2)
        _FileCreate("data.txt")
        $fo = FileOpen("data.txt")
        FileWrite("data.txt",")
        FileClose($Fo)

    Wenn ich jetzt in meine data.txt schaue steht dort aber nur "•Ñ›™!Åp" der verschlüsselte String sollte aber doch laut ausgegebener Msgbox "0x95D19B991921C570" sein oder?

    Wie schaffe ich es das nur "0x95D19B991921C570" in der Datei steht?

    Danke schonmal im vorraus für alle Antworten!

    Johannes

  • Something like this ?

    C
    #include  < Crypt.au3 >
    #include  < File.au3 >
    $Text =  "test"
    $Text_crypt = _Crypt_EncryptData($text, "1234" , $CALG_RC2)
        _FileCreate ( "data.txt" )
        $fo = FileOpen ( "data.txt")
        FileWrite ( "data.txt", "0x" & Hex($Text_crypt))
        FileClose ($Fo)
  • Hi,

    Stringtobinary() ist dein Freund....

    btw., Hex() wandelt Integer um, ist also in diesem Fall falsch.

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (25. Juni 2019 um 22:38)

    • Offizieller Beitrag

    Ich würde es so machen:

  • Vielen dank für die vielen Antworten!

    Ich benutze jetzt Oscar s methode da der Benutzer wenn er in die Datei schaut mit "•Ñ›™!Åp" weniger anfangen kann als wenn in der Datei "0x95D19B991921C570" steht.

    Das andere Funktioniert aber auch Top :)

    Johannes

  • Ich hätte da noch einen Tipp:

    Anstatt:

    $sPassword = "1234"

    Wäre sicherer*:

    $xfsa = 1

    $fqq2 = 2

    $vaetg= 3

    $3wf= 4

    $sPassword = $xfsa & $fqq2 & $vaetg & $3wf

    * Wäre dann deutlich schwerer, das Passwort über die Strings zu finden. Man kann bspw. mit Debuggern alle Strings aus einem Programm dumpen.

    Ein Kollege von damals hat mir so mal gezeigt, das er meine SQL Daten so herausbekommen konnte. :D

    Durch die zweite Methode werden die Zeichen einzeln angezeigt und nicht als ganzes Passwort.

    • Offizieller Beitrag

    Wäre dann deutlich schwerer, das Passwort über die Strings zu finden.

    Man sollte das Passwort gar nicht im Script speichern!

    Der Benutzer muss das Passwort eingeben, dann dekodiert man die Daten damit und zeigt sie an.

    Bei einem falschen Passwort sind dann halt die angezeigten Daten falsch. :)

    Naja, man könnte noch einen Hashwert des richtigen Passworts mit abspeichern und diesen dann vergleichen.

  • Man sollte das Passwort gar nicht im Script speichern!

    Der Benutzer muss das Passwort eingeben, dann dekodiert man die Daten damit und zeigt sie an.

    Bei einem falschen Passwort sind dann halt die angezeigten Daten falsch. :)

    Naja, man könnte noch einen Hashwert des richtigen Passworts mit abspeichern und diesen dann vergleichen.

    Stimmt, am besten erst gar keine Daten im Skript speichern.

    AutoIt macht es den Bösewichten auch nicht grad schwer. ^^