Schiller256 Geschrieben 29. April 2007 Geschrieben 29. April 2007 Hallo, gibt eine Möglichkeit einen mit der MySQL Funktion AES_ENCRYPT() Verschlüsselten Datensatz mit Hilfe von PHP mcrypt Funktionen wieder zu entschlüsseln? Das ganze sollte auch andersherum gehen. Oder gibt es da alternativen? Hintergrund: Ich verwende Propel als O/R-Mapper dieser bietet keine Möglichkeit das ich die entsprechenden MySQL Funktionen aufrufen kann. Oder ich habe sie noch nicht gefunden. Nun habe ich versucht selbst mit den mcrypt Funktionen die Daten die ich aus der Datenbank bekomme zu Ent-/Verschlüsseln das klappt aber leider nur bis zu einer Passwortlänge von 12 Zeichen. Es werden im php Manual[1,2] zwei Funktionen gezeigt die ich verwende. Wieso ich die Kompatibilität zu AES_EN/DECRYPT() brauche liegt darin das andere Scripte auch auf diese Tabelle zugreifen und eben mit dem MySQL Funktionen arbeiten. [1] PHP Manual: mysql_aes_decrypt [2] PHP Manual: mysql_aes_encrypt Zitieren
geloescht_JesterDay Geschrieben 2. Mai 2007 Geschrieben 2. Mai 2007 gibt eine Möglichkeit einen mit der MySQL Funktion AES_ENCRYPT() Verschlüsselten Datensatz mit Hilfe von PHP mcrypt Funktionen wieder zu entschlüsseln? This is an interface to the mcrypt library, which supports a wide variety of block algorithms such as DES, TripleDES, Blowfish (default), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 and GOST in CBC, OFB, CFB and ECB cipher modes. Additionally, it supports RC6 and IDEA which are considered "non-free". Ich sehe da keine AES Verschlüsselung. Auch Rijndael (so wird AES auch genannt) steht da nicht. also ich würde sagen: Nein. Zitieren
Schiller256 Geschrieben 2. Mai 2007 Autor Geschrieben 2. Mai 2007 Doch MCRYPT_RIJNDAEL_128/192/256 gibt es in Mcrypt unter dem Punkt „Mcrypt ciphers“ steht es, wichtig ist nur das libmcrypt > 2.4 ist. Das ist bei mir der Fall und es klappt ja auch mit einem Passwort <= 12 Zeichen. Nur wenn es mehr Zeichen sind dann geht es mit der Ver-/Entschlüsselung nicht mehr. Ich denke es liegt am Initialisierungsvektor nur so recht nachvollziehen kann ich das ganze noch nicht. Zitieren
DiHo Geschrieben 8. Mai 2007 Geschrieben 8. Mai 2007 Hi, Nun habe ich versucht selbst mit den mcrypt Funktionen die Daten die ich aus der Datenbank bekomme zu Ent-/Verschlüsseln das klappt aber leider nur bis zu einer Passwortlänge von 12 Zeichen. Passwörter speichert man grundsätzlich mit One-Way-Verschlüsselung! Benutze lieber z.B. md5. Wenn du das für eine Passwortabfrage brauchst, dann einfach auch den Wert verschlüsseln der dir als Pw. übergeben wurde und mit dem in der DB vergleichen. Wenn du es als "Passwort vergessen"-Option machen willst, dann erstelle lieber ein temporäres Passwort das an den Benutzer gesendet und bei Klick auf den Link in der Mail anstelle des vergessenen in die DB eingetragen wird. Gruß, DiHo Zitieren
Schiller256 Geschrieben 8. Mai 2007 Autor Geschrieben 8. Mai 2007 Na und genau da liegt doch das Problem die Passwörter sind länger als 12 Zeichen es sind genau 32 Zeichen weil sie eben mit md5 in einen Hash-Wert umgewandelt wurden. Mir geht es auch nicht um irgendwelche Passwortabfragen. Ich möchte/ muss Daten die ich mit Hilfe von AES_ENCRYPT/DECRYPT Funktionen (aus MySQL) verschlüsselt habe mit Hilfe von PHP Funktionen wieder entschlüsseln. Das ganze soll auch anders herum gehen. Also mit PHP Verschlüsseln und dann die Daten in die Datenbank schreiben und mit MySQL Funktionen wieder entschlüsseln. Da genau liegt im Moment das Problem ich kann das ganze nur machen wenn die Passwörter <= 12 Zeichen sind. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.