2017-09-26 1 views
0

Ich habe so viele verschiedene Varianten versucht, um AES_Decrypt zu funktionieren. Ich begann mit Feldtypen VARBINARY dann versuchte BLOB aber noch kein Glück, immer wieder NULL. Schließlich habe ich versucht, dies:MySQL AES_Decrypt funktioniert nicht

SELECT AES_DECRYPT(AES_ENCRYPT('blah blah blah','1234'), '1234') as test 

technisch zurückgekehrt sollte bla bla bla, aber stattdessen gibt es

626c616820626c616820626c6168 

also nicht sicher, was los ist oder was ich falsch mache.

Ich habe verschlüsselte Daten wie folgt eingefügt:

INSERT INTO private (short_name, mobile, name) 
VALUES (
    'AS1', 
    AES_ENCRYPT('0111222333','1234'), 
    AES_ENCRYPT('My Name','1234') 
) 

Dann versuche ich es so zu entschlüsseln:

SELECT AES_DECRYPT('mobile', '1234') AS mobile FROM private 

Es funktioniert einfach nicht zu funktionieren scheint. Befolgte viele Anweisungen online, aber immer noch kein Glück.

Irgendwelche Ideen?

Antwort

0
SELECT AES_DECRYPT(AES_ENCRYPT('blah blah blah','1234'), '1234') as test 

gibt binäre Zeichenfolge als Ausgabe zurück. Wenn Sie es in String konvertieren, wird es blah blah blah. Sie können den Online-Hex-zu-Binär-Konverter verwenden, um dies zu überprüfen. Sie müssen es in Ihrem GUI-Tool auf Text setzen.

+0

Ich habe versucht, die Zeichenfolge mit Online-Binär-Wandler konvertieren, aber alle Fehler geben. Ist es nicht eine Möglichkeit, es als Text zurückzugeben, ohne es separat konvertieren zu müssen – Ahmed

+0

ok es scheint, ich muss es so sagen: SELECT CAST (AES_DECRYPT ('bla bla bla', '1234'), ' 1234 ') AS CHAR (150)) – Ahmed

+0

Verwenden Sie diesen Link zum Konvertieren. http://string-functions.com/hex-string.aspx – Jack

0

So scheint es, dass ich CAST verwenden muss, wenn Sie den mysql-Befehlszeilenclient nicht verwenden.

So tun dies scheint zu funktionieren:

SELECT CAST(AES_DECRYPT(AES_ENCRYPT('blah blah blah','1234'), '1234') AS CHAR (150))