Ich habe jetzt gefühlt 100 verschiedene Ansätze ausprobiert und viele davon waren schon älter und konnten wohl daher nicht mit UTF-8 umgehen.
Auf der PHP-Seite habe ich zum Testen ein kleines Script aus den gefundenen Ansätzen erstellt, dass einen Text verschlüsselt und sofort wieder entschlüsselt.
Wie man sieht, funktioniert das innerhalb PHP problemlos.
Code:
<?php
function MyEncrypt ($data, $key, $iv)
{
//Remove the base64 encoding from our key
$encryption_key = $key;
//Encrypt the data using AES 256 encryption in CBC mode using our encryption key and initialization vector.
$encrypted = openssl_encrypt($data, 'AES-256-CBC', $encryption_key, 0, $iv);
//The $iv is just as important as the key for decrypting, so save it with our encrypted data using a unique separator (::)
return base64_encode($encrypted);
}
function MyDecrypt ($data, $key, $iv)
{
$encryption_key = $key;
$indata = base64_decode($data); // Base64-Dekodieren
$unencrypted = openssl_decrypt($indata, 'AES-256-CBC', $encryption_key, 0, $iv);
return $unencrypted;
}
$key = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEF";
$plaintext = 'zu verschlüsselnde Nachricht äöüÄÖÜß';
$iv = "1234567890123456";
echo 'Plaintext : '.$plaintext.'<BR>';
echo 'Key : '.$key.' ('.strlen($key).')<BR>';
echo 'IV : '.$iv.' ('.strlen($iv).')<BR>';
$enc = MyEncrypt($plaintext, $key, $iv);
echo 'Verschlüsselt : '.$enc.'<BR>';
echo '<br>';
echo 'Entschlüsselt : '.MyDecrypt($enc, $key, $iv);
?>
Ergebnis:
Code:
Plaintext : zu verschlüsselnde Nachricht äöüÄÖÜß
Key : ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEF (32)
IV : 1234567890123456 (16)
Verschlüsselt : akMrallnS09ZVmlvOER5Y2w3WCtsVDJ3UEpYbTY4Yy9QQWg2N0xjaFYrdHNpL29pUEdOVVdvUHZNT2ZiQVMwWQ==
Entschlüsselt : zu verschlüsselnde Nachricht äöüÄÖÜß