ホームページ >データベース >mysql チュートリアル >AES_DECRYPT が MySQL で暗号化されたデータを返すのはなぜですか?

AES_DECRYPT が MySQL で暗号化されたデータを返すのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-10 13:46:03675ブラウズ

Why is AES_DECRYPT Returning Encrypted Data in MySQL?

MySQL の AES_ENCRYPT 後に暗号化されたデータを復号化できない

問題ステートメント:

暗号化後MySQL テーブルで AES_ENCRYPT を使用したデータ、試行AES_DECRYPT を使用してデータを復号化すると、復号化された値を表示できなくなります。

解決策:

MySQL マニュアルに従って、AES_DECRYPT は元の文字列を返すことを目的としています。復号化後。ただし、ユーザーは、復号化された値が依然としてバイナリ文字列として返されていることを観察しています。この問題を解決するには、CAST 関数を使用して、復号化された文字列を文字列としてキャストしてみる必要があります。

たとえば、次のクエリは、復号化された first_name 列を 50 文字の文字列としてキャストします。

SELECT *, 
       CAST(AES_DECRYPT(first_name, 'usa2010') AS CHAR(50)) first_name_decrypt 
FROM   user

ユーザーは first_name_decrypt 列を使用して、復号化されたデータを読み取り可能な形式で表示できます。

以上がAES_DECRYPT が MySQL で暗号化されたデータを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。