ホームページ > データベース > mysql チュートリアル > MySQL で AES_DECRYPT がプレーンテキストではなくバイナリ文字列を返すのはなぜですか?

MySQL で AES_DECRYPT がプレーンテキストではなくバイナリ文字列を返すのはなぜですか?

Susan Sarandon
リリース: 2024-11-11 03:50:02
オリジナル
422 人が閲覧しました

Why does AES_DECRYPT return a binary string instead of plaintext in MySQL?

MySQL 関数を使用した AES 暗号化と復号化

機密データを扱う場合、情報を不正アクセスから保護するために暗号化が重要になります。 MySQL は、データを保護するために、AES_ENCRYPT や AES_DECRYPT などのさまざまな暗号化関数を提供します。ただし、一部のユーザーは、これらの関数を使用して暗号化した後に復号化しようとすると問題が発生します。

問題:

AES_ENCRYPT で暗号化した後、AES_DECRYPT を使用してテーブルの行をクエリすると、結果は、予想されるプレーンテキストではなくバイナリ文字列として表示される可能性があります。

解決策:

MySQL ドキュメントによると、AES_DECRYPT は復号化後に元の文字列を返す必要があります。ただし、依然としてバイナリ文字列を返す状況が存在する可能性があります。

次のコードは、この問題の回避策を示しています。

SELECT *,
       CAST(AES_DECRYPT(first_name, 'usa2010') AS CHAR(50)) first_name_decrypt
FROM   user
ログイン後にコピー

次のメソッドを使用して、復号化された値を文字型に明示的にキャストします。 CAST() を使用すると、読み取り可能な文字列として表示されることを確認できます。クエリで first_name_decrypt 列を使用して、元の first_name 列の代わりに復号化された平文を取得します。

以上がMySQL で AES_DECRYPT がプレーンテキストではなくバイナリ文字列を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート