Fehlerbehebung bei AES-Entschlüsselungsproblemen in MySQL
Bei der Arbeit mit verschlüsselten Daten in MySQL ist es wichtig, die verfügbaren Verschlüsselungs- und Entschlüsselungsfunktionen zu verstehen. Dieser Artikel befasst sich mit dem Problem, dass beim Versuch, mit AES-Verschlüsselung verschlüsselte Daten zu entschlüsseln, leere Ergebnisse angezeigt werden.
In MySQL arbeiten die Funktionen AES_ENCRYPT und AES_DECRYPT mit Binärzeichenfolgen. Das beabsichtigte Verhalten besteht darin, dass AES_DECRYPT die entschlüsselten Daten als Zeichenfolge zurückgibt. In bestimmten Szenarien liegen die entschlüsselten Daten jedoch möglicherweise immer noch im Binärformat vor, was zu leeren Ergebnisanzeigen führt.
Um dieses Problem zu beheben, empfiehlt das MySQL-Handbuch die Verwendung der CAST()-Funktion, um die entschlüsselte Binärzeichenfolge explizit umzuwandeln in eine Zeichenfolge umwandeln. So kann dies implementiert werden:
SELECT *, CAST(AES_DECRYPT(first_name, 'usa2010') AS CHAR(50)) AS first_name_decrypt FROM user
In dieser Abfrage wird die entschlüsselte Spalte „Vorname“ in eine Zeichenfolge mit einer maximalen Länge von 50 Zeichen umgewandelt. Dadurch wird sichergestellt, dass die entschlüsselten Daten als lesbare Textzeichenfolge angezeigt werden.
Mit diesem Ansatz können Sie die verschlüsselten Daten erfolgreich entschlüsseln und in Ihrer Tabelle anzeigen. Denken Sie daran, die Zeichenlänge in der CAST()-Funktion nach Bedarf anzupassen, basierend auf der erwarteten Länge Ihrer entschlüsselten Daten.
Das obige ist der detaillierte Inhalt vonWarum liefert meine MySQL-AES-Entschlüsselung leere Ergebnisse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!