Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Verschlüsselung MySQL <-> PHP

Empfohlene Antworten

Veröffentlicht

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

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.

  • Autor

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.

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

  • Autor

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.