Hallo Forum,
ich stehe erneut vor einem Problem, bei dem ich nicht weiterkomme. Vielleicht kann mir jemand von Euch einen weiteren Tipp geben.
Ich lasse auf meinem (Web)Server mithilfe von PHP eine verschlüsselte Text-Datei erzeugen, die sofort zum Download bereit steht:
function download($data="AäOöUüsß") {
$password="ganz_furchtbar_geheimes_passwort";
header('Content-Type: text/plain; charset=iso-8859-1');
header('Content-Transfer-Encoding: quoted-printable');
header('Last-Modified: '.date('D, d M Y H:i:s T'));
header('Expires: 0');
header('Pragma: no-cache');
header('Cache-Control: private, no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Content-Disposition: attachment; filename="verschlDatei.enc"');
$sys = 'echo ' . escapeshellarg($data) . ' | openssl enc -aes-256-cbc -a -salt -pass pass:' . escapeshellarg($password);
system($sys);
exit;
} // end function
Klappt alles wunderbar, Datei wird heruntergeladen und Inhalt ist verschlüsselt.
Datei "verschlDatei.enc": ~~~php
U2FsdGVkX1+kj/UQtqf1zsuvBpMgPaQR9DieDKPFNTFLIM5r88AL6M9DoUv/b0JE
<..cut..>
njovSZyeagHqsCJsuwfnlmKyft0S5AtlZdCFNv/EABM=
Nun wird die verschlüsselte Datei auf dem Zielrechner (Win7) per Batch entschlüsselt:
~~~php
openssl enc -d -aes-256-cbc -a -salt -pass pass:ganz_furchtbar_geheimes_passwort -in verschlDatei.enc > entschlDatei.csv
Klappt auch wunderbar, bis auf die Tatsache, dass plötzlich ALLE Deutschen Umlaute verschwunden sind:
Inhalt "entschlDatei.csv": ~~~php
AOUs
Tests haben ergeben, dass die Header aus der Funktion download() korrekt sind, denn nach dem Download der unverschlüsselten Daten sind alle Umlaute vorhanden.
Es muss also irgendwie an openssl liegen, dass die Umlaute entweder beim VERschlüsseln oder nach dem ENTschlüsseln abhanden kommen.
Kennt jemand ein ähnlichen Fall und kann mir evtl. helfen?
Besten Dank im Voraus.
VG Chris