真剣に、 MySQLのaes_encrypt()を使用しないでください これは、ブロック暗号を使用する最も安全でない方法です。 ECBモードを使用しているので、これが重大な間違いである理由を簡単に例証できます。
プレーンテキストメッセージ:
ECBモードで暗号化された同じメッセージ(使用する暗号は関係ありません):
CBCモードを使用したまったく同じメッセージ(ここでも、使用する暗号は関係ありません):
さらに多くの理由があります mysqlのaes_encryptを使用しないでください。特に、送信するすべてのクエリには、使用するaesキーも含まれます。データベースが侵害された場合、攻撃者はログを有効にし、aesキーを取得して、データベース全体を復号化します。 。
では、すべきこと あなたが使う? このクラス 当面。 String2Key関数とIVでCBCモードを使用します。主キーをIVとして使用できます。各メッセージには、一意のIVが必要です。攻撃者がIVを知っていて、それらがシーケンシャルである場合、ブロック暗号の実装が安全である限りは問題ありません。 IVを再利用すると、WEPの安全性が大幅に低下します 。