0

私は、mysql データの暗号化と記述に and をAES_ENCRYPT()使用しています。またはAES_DECRYPT()を使用しても問題なく動作していますが、これはチェックインしている少量のデータのためのものです.すでにフォーマットされているレコードがあり、それらに対して暗号化したい詳細に加えて、そのままにしておくことを好みますユーザーは連絡先と SMS です (データの可能なサイズを把握するために、必要な数だけ指定できます)。今、妥当な文字数で使用する場合、何らかの理由や問題のためにシフトしなければならないものやどこか/いつかに固執する方が良いでしょうか? この問題を置き去りにして、私を使い続けるために、良い提案をしてください。VARCHAR()VARBINARY()VARCHAR()VARCHAR()VARCHAR()VARBINARY()VARBINARY()VARCHAR()列は先に入力します。私がそれについて考えさせられた問題は、私がそれについてググったときに、ユーザーからの混合反応を見つけたことです.ユーザーVARCHAR()と言う人もいればVARBINARY()、まったく問題がない人もいれば、MYSQLドキュメントが好む、または私が言うことよりも心配なことVARBINARY(). データの戻り値が BINARY/BLOB fromat であるため、それが理由である可能性があることはわかっていますが、なぜVARCHAR()タイプが許可されるのでしょうか? 私の質問の考えが明確になることを願っています、ありがとう

4

1 に答える 1

3

以下に記載されているAES_ENCRYPT()とおり:

AES_ENCRYPT()文字列を暗号化し、バイナリ文字列を返します。

結果をバイナリ文字列型の列に格納する必要があることは明らかですVARBINARY

を使用することで発生する可能性のある問題については、次のとおりですVARCHAR

  1. 文字セットによっては、一部のバイト シーケンスが無効であり、拒否される可能性があります。と

  2. 意図しない文字セットの変換により、暗号文が変更される可能性があります。

于 2013-05-24T07:30:41.063 に答える