OpenSSL und Excel
09.05.2022 15:04:54
Tobi@s
ich arbeite auf einer Behörde. Dienstlich bekommen wir von der Postbank CDs, welche per OpenSSL verschlüsselt wurden.
Dazu wurde bisher die cmd geöffnet, der Speicherpfad des Programms eingegeben und dann eine Befehlsfolge, die mit "openssl enc ..." anfängt und den Pfad der Datei, das Passwort und den Ausgabepfad für die (erwartete) csv-Datei.
Das funktioniert mit jedem Passwort.
Soweit so ... händisch :-).
Ich (als neuer Kollege) will das Ganze automatisieren. Soweit ... funktioniert auch alles, wenn ... ja, wenn die Passworte nicht immer mal Zeichen beinhalten, die "Sonderzeichen" sind. Da scheitert mein Problem.
Hier mal der Kern:
Open txt_Zielpfad & Name_BAT For Output As #1
Print #1, "C:"
Print #1, "cd \openssl\bin"
Print #1, "openssl enc -d -aes256 -in " & P_in & Dat_in & " -k " & PW & " -out " & P_out
Close #1
'Bat-Datei ausführen
Dim retVal
retVal = Shell(txt_Zielpfad & Name_BAT, 1)
mit dem Code erstellt mein Makro eine bat-Datei und schreibt in den ersten Zeilen von "Print" den Dateipfad des Programms rein (in einer Zeile mit "C:\openssl\bin" bekomme ich das nicht hin).in der letzten Zeile werden die zuvor ausgewerteten Variablen P_in, Dat_in (für Pfad und Dateiname der verschlüsselten Datei), das PW (Passwort) und mit P_out die Ausgabedatei übergeben.
Problem: wenn im PW Zeichen wie "}" stehen ... erstellt er eine csv-Datei die nur (für mich) kryptischen Müll enthält :-).
Ich habe schon probiert, diese Zeichen zu maskieren mit "^" bzw. auch "das Sonderzeichen doppeln" (% --> %%) - bekomme es einfach nicht hin.
Jemand meinte, man könnte auch das so in die Datei schreiben, dass das "PW" (und so) als Variable gewertet wird, aber da kenne ich mich absolut nicht aus, wie ich das hinbekomme und ob es funktioniert.
Wenn ich einmal dabei bin ... auch funktioniert dieser Weg nur, wenn im Dateipfad keine Leerzeichen zu finden sind. Was müsste man tun, damit man auch Pfade nutzen kann, in denen sich Leerzeichen befinden? Ebenfalls mit Variablen irgendwie?
und wenn ich einmal dabei bin ... gibts evtl schon irgendwelche VBA-Module die mit openSSL spielen und die man frei nutzen kann? Ich hab bisher nichts (deutschsprachiges) gefunden.
Tobi@s