2016-07-21 8 views
-1

Wenn ich eine Abfrage wie folgt aus:mysql passenden verschlüsselten Werte

SELECT * FROM table WHERE columnName = AES_ENCRYPT('value','SecretKey') 

ich eine leere Menge zurück bin, obwohl es Zeilen in der db, die den Suchkriterien entsprechen.

Wie würde die korrekte Syntax für so etwas aussehen?

+0

richten Sie es mit einer Probe von, wie es dort ankam. Sollte ungefähr 5 Minuten dauern. – Drew

+0

Entschuldigung? Versteh nicht wirklich, was du meinst. – tdrsam

+0

Verwenden Sie http://sqlfiddle.com zum Erstellen eines MCVE, @tdrsam, und teilen Sie den Link. Wenn Sie den verschlüsselten Wert in einem 'VARCHAR' anstelle eines' VARBINARY' speichern, ein ziemlich häufiger Fehler, der auch das Problem erklären würde - Sie können das nicht tun. 'AES_ENCRYPT()' gibt Binärdaten und keine Zeichendaten zurück. Nicht alle möglichen Byte-Muster sind gültige Zeichen. –

Antwort

0
SELECT * FROM table WHERE columnName = AES_ENCRYPT(columnName,'SecretKey')='value'