Jörg Reinholz: String verschlüsseln und mit PHP wieder entschlüsseln

Beitrag lesen

Hallo Felix,

Bitte vergiss nicht, dass es eine lokal abgespeicherte HTML-Datei sein wird, in der alles "hart kodiert" sein darf.

Das konnte ich gar nicht vergessen, das war mir zu dem Zeitpunkt noch nicht bekannt. Ich habe es geschrieben, damit nicht ein unbedarfter Kopierer einen hübschen Bypass implementiert und sich dann wundert, dass die Staatsanwaltschaft ihn informiert, dass seine Kundendatenbank mit den Kreditkartennummern in den einschlägigen Foren wie Sauerbier angeboten wird.

Übrigens...

Du kannst:

print system("openssl enc -d -aes-256-cbc -a -in '/tmp/encrypted' -pass pass:hallo 2>&1");

auch umbauen.

<?php  
header('content-type:text/plain');  
$pass="hallo";  
$tempfile=tempnam('/tmp', 'PHP_');  
$data=chunk_split($_POST['data'])."\n";  
$str=exec("echo '".$data."' | openssl enc -d -aes-256-cbc -a -pass pass:'".$pass."' > $tempfile 2> /dev/null;echo $?");  
if ('0'==$str) {  
  echo "Das hat geklappt:\n-------------------------------\n", file_get_contents($tempfile), "\n-------------------------------\n";  
  unlink($tempfile);  
} else {  
  unlink($tempfile);  
  echo "Fehler!";  
}

Ist dann nämlich das Passwort falsch schmeisst openssl einen Fehler der in $? steht. Das lässt sich so auswerten.

Die Daten stehen vor dem Löschen in $tempfile bereit...