PHP - Variable kann nicht verglichen werden

Wiiua

Grünschnabel
Hallo Leute!

Ich hänge bei einem großen Problem.

... Ich lasse einen mit MCRYPT (MCRYPT_RIJNDAEL_128) verschlüsselten Text entschlüsseln. Das Ergebnis der Entschlüsselung ist auch korrekt.
Möchte ich dieses Ergebnis nun mit einer anderen Variabel vergleichen so ist die Überprüfung nicht erfolgreich.
Dabei sind die beiden Variablen identisch und ich kann mir das nicht erklären warum es dennoch falsch ist?

Hier mein Code:
PHP:
function encrypt($text){
	$encrypted = mcrypt_cbc(MCRYPT_RIJNDAEL_128,"test" ,$text,MCRYPT_ENCRYPT,"1234567891234567");
	return $verschlüsseln = base64_encode($encrypted);
}

function decrypt($text){
	$text = trim(base64_decode($text));
	$entschlüsseln = mcrypt_cbc(MCRYPT_RIJNDAEL_128,"test" ,$text,MCRYPT_DECRYPT,"1234567891234567");
	return htmlentities(stripslashes($entschlüsseln));
}

$var1 = decrypt('BfKhVHLwXZRLgDsXxV+c4g==');
$var2 = 'Test';

decrypt($var1) // Ist entschlüsselt "Test"

if ($var1 == $var2)echo ok; else echo error; //Es kommt trotzdem error

EDIT:
Ich habe nach Tagen suchen das Problem gefunden.
Der entschlüsselte String hat white spaces enthalten und war somit dann auch ungültig.
PHP:
trim()
hat das Problem gelöst!
 
Zuletzt bearbeitet:
Du hast da einen kleinen Logikfehler:

Wie soll denn $var1 == $var2 sein, wenn decrypt($var1) == "Test" == $var2?
Zumindest wenn man davon ausgeht, dass die Funktionen immer ein anderes Ergebnis als die Eingabe produzieren.
 
Stimmt war ein Fehler.
PHP:
decrypt($var1) // Ist entschlüsselt "Test"
Kann voll ignoriert werden.

Problem habe ich bereits gelöst :)
 

Neue Beiträge

Zurück