2017-09-26 1 views
0

私は、AES_Decryptを動作させるために非常に多くのバリエーションを試してきました。私はフィールド型VARBINARYで始まり、BLOBを試みましたがまだ運が無く、NULLを返し続けます。結局、私はこれを試してみました:MySQL AES_Decryptが機能しない

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

これは技術的には何とか何とか何とか戻っているはずですが、代わりにそれは

626c616820626c616820626c6168 

何が起こっているか、私が間違っているの何のでわからないが返されます。

次のように私は、暗号化されたデータを挿入した:

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

それから私はこのようにそれを解読しよう:

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

それだけで動作するようには思えません。オンラインでの指示に従いましたが、まだ運がありません。

アイデア?

答えて

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

出力としてバイナリ文字列を返しています。それを文字列に変換すると、それはまあまあです。オンライン16進数 - 2進変換を使用して、それを確認することができます。 GUIツールのテキストに設定する必要があります。

+0

私はオンラインバイナリコンバータを使用して文字列を変換しようとしたが、すべてのエラーを与えます。それは別にそれを変換することなくテキストとしてそれを返す方法であるはずはありません – Ahmed

+0

私はこれのように置く必要があるようです:SELECT CAST(AES_DECRYPT(AES_DECRYPT( 'blah blah blah'、 '1234')、 1234 ')AS CHAR(150)) – Ahmed

+0

このリンクを使用して変換します。 http://string-functions.com/hex-string.aspx – Jack

0

したがって、mysqlコマンドラインクライアントを使用しない限り、CASTを使用する必要があるようです。

だから、これは動作しているようですやって:

SELECT CAST(AES_DECRYPT(AES_ENCRYPT('blah blah blah','1234'), '1234') AS CHAR (150)) 
関連する問題