Ich habe versucht, meine Verschlüsselung von Mcrypt nach openssl zu migrieren, aber die Entschlüsselung bleibt erhalten. Der Code unten zeigt meine Verschlüsselungsfunktion. Ich habe den var_dump in die Verschlüsselungsfunktion gestellt, um zu verifizieren, dass die Entschlüsselung mit identischen Variablen funktioniert, was nicht der Fall ist.openssl_decrypt gibt immer false zurück
ich folgende Änderungen am Code versucht, keine gearbeitet:
base64_decode($encrypted)
- nur aus Neugier
base64_encode($encrypted)
- all diesen Varianten mit Optionen auf: 0 (Standardwert), OPENSSL_RAW_DATA, OPENSSL_ZERO_PADDING
function encryptString($data){
$key = "1A534";
do{
$iv = random_bytes(100);
}while(strpos($iv,"|Z|")!==false);
$encrypted = openssl_encrypt($data,"aes-256-gcm",$key,false,$iv);
var_dump(openssl_decrypt($encrypted,"aes-256-gcm",$key,OPENSSL_RAW_DATA,$iv));
$output = $iv . "|Z|" . $encrypted;
$output = base64_encode($output);
return $output;
}
PHP Version ist 7.0.5-1 + deb.sury.org ~ treuen + 1
OpenSSL Version ist OpenSSL 1.0.2g 1. März 2016
Warum hält openssl_decrypt falsche Rückkehr? Ich habe erfolgreich mit den gleichen Variablen nur die Zeile oben verschlüsselt.
Ich denke, das wird bis PHP 7.1 nicht funktionieren, weil es einen Fehler mit dem Authentifizierungs-Tag gibt. –
Scheint richtig. Keine GCM-Verschlüsselung funktioniert ordnungsgemäß. – Us3r
Ich benutze 7.1 in diesem Szenario, aber immer noch eine falsche zurückgegeben in allen Szenarien. – Dockstar