PHP MySQL encrypt decrypt, irgendwas mach ich falsch...

hi-tech

Lt. Commander
Registriert
Sep. 2006
Beiträge
1.311
Schreibe Daten in eine Datenbank, die vorher encrypcted werden:
Code:
function encrypt($string, $key){
   $string = rtrim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $string, MCRYPT_MODE_ECB)));
   return $string;}

Beim ausgeben auf meiner Webseite werden sie decrypted:
Code:
function decrypt($string, $key){
   $string = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($string), MCRYPT_MODE_ECB));
   return $string;}

Allerdings erhalte ich bei der Ausgabe auf der Seite solche Daten:
7̙������\���iŨ���������%
\�%9s�-�z<~���WZ��3�!�'�`rL�
�g����{�7����GM�a����A��a8��/
[e_��e�p�����rS%�x�L��P�]�{
��O!��!bm1~')Q�%�S� {p}�O5H.~

Sind mal 5 Daten untereinander als Beispiel.
Woran könnte das liegen? Jemand eine Idee?
$key ist bei beiden Funktionen der selbe und auch vorhanden.
 
Zuerst:
ECB ist nicht so gut.
Speichere die Länge separat und den Ciphertext in einem BINARY Feld. PHP kann Binärdaten in Strings.

Vergleich mal beim Abspeichern, ob auch das ankommt, was du denkst. Also prüfe, ob PHP->MySQL->PHP nicht irgendwas verfälscht. Auch den $key testen (bzw. du sagst, es sei der selbe).

Ich trau dem rtrim und base64 nicht so ganz, da geht wohl irgendwo ein '\0' oder so verloren.

Aber wie immer, Problem möglichst weit eingrenzen, jeden Teil auf den Prüfstand stellen. Minimaltest ist wohl decrypt(encrypt($string))==$string.
 
Danke werd das mal durchgehen!
Felder sind vom Typ Varbinary.
Code:
$test = "manhattan";
if(decrypt(encrypt($test, $key), $key)==$test){
   echo "klappt!<br>";
}else{
   echo "klappt nicht!<br>";
}

klappt!

Denke PHP->MySQL->PHP sollte irgendwo das Problem sein...

Edit:
Ok..bißchen gegooglet. War wohl bißchen vorschnell mit dem Thema. Muss mich da voll nochmal einlesen, wie ich das Verschlüsseln im ganzen umsetze. Da ist wohl mehr zu tun als das erstbeste Codebeispiel nachzutippen. Man ey und ich dachte ich mach das mal schnell...
 
Zuletzt bearbeitet:
Zurück
Oben