MySQL AES 復号化で空の結果が返されるのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-13 06:07:02
オリジナル
518 人が閲覧しました

Why Does My MySQL AES Decryption Return Blank Results?

MySQL での AES 復号化の問題のトラブルシューティング

MySQL で暗号化されたデータを操作する場合、使用可能な暗号化関数と復号化関数を理解することが重要です。この記事では、AES 暗号化を使用して暗号化されたデータを復号化しようとすると空の結果が表示される問題に取り組みます。

MySQL では、AES_ENCRYPT 関数と AES_DECRYPT 関数は両方ともバイナリ文字列で動作します。意図された動作は、AES_DECRYPT が復号化されたデータを文字列として返すことです。ただし、特定のシナリオでは、復号化されたデータがバイナリ形式のままであり、空の結果が表示されることがあります。

この問題を解決するには、MySQL マニュアルでは、CAST() 関数を使用して復号化されたバイナリ文字列を明示的に変換することを推奨しています。文字列にします。これを実装する方法は次のとおりです。

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

このクエリでは、復号化された first_name 列が最大 50 文字の文字列としてキャストされます。これにより、復号化されたデータが読み取り可能なテキスト文字列として表示されます。

このアプローチに従うことで、テーブル内の暗号化されたデータを正常に復号化して表示できます。復号化されたデータの予想される長さに基づいて、必要に応じて CAST() 関数の文字長を忘れずに調整してください。

以上がMySQL AES 復号化で空の結果が返されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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