AES-Verschlüsselung und -Entschlüsselung mit MySQL-Funktionen
Bei der Arbeit mit sensiblen Daten ist die Verschlüsselung von entscheidender Bedeutung, um Informationen vor unbefugtem Zugriff zu schützen. MySQL bietet verschiedene Verschlüsselungsfunktionen, einschließlich AES_ENCRYPT und AES_DECRYPT, um Daten zu schützen. Allerdings stoßen einige Benutzer beim Versuch der Entschlüsselung nach der Verschlüsselung mit diesen Funktionen auf Schwierigkeiten.
Problem:
Wenn eine Zeile aus einer Tabelle mit AES_DECRYPT abgefragt wird, nachdem sie mit AES_ENCRYPT verschlüsselt wurde, Das Ergebnis erscheint möglicherweise nicht wie erwartet, sondern als Binärzeichenfolge Klartext.
Lösung:
Laut der MySQL-Dokumentation sollte AES_DECRYPT nach der Entschlüsselung die ursprüngliche Zeichenfolge zurückgeben. Es kann jedoch Situationen geben, in denen immer noch eine Binärzeichenfolge zurückgegeben wird.
Der folgende Code zeigt eine Problemumgehung für dieses Problem:
SELECT *, CAST(AES_DECRYPT(first_name, 'usa2010') AS CHAR(50)) first_name_decrypt FROM user
Durch explizite Umwandlung des entschlüsselten Werts in einen Zeichentyp mit Mit CAST() können Sie sicherstellen, dass es als lesbarer String angezeigt wird. Verwenden Sie in Ihren Abfragen die Spalte „first_name_decrypt“, um den entschlüsselten Klartext anstelle der ursprünglichen Spalte „first_name“ abzurufen.
Das obige ist der detaillierte Inhalt vonWarum gibt AES_DECRYPT in MySQL eine Binärzeichenfolge anstelle von Klartext zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!