1

私が使用するコードブロックは以下のとおりです。

SELECT * FROM crypted_tbl WHERE Username=AES_ENCRYPT('aydu', 'usa2010');

このコマンドを使用すると、

”`‡œ™uûx“¢Í®i
‘¨åµüÐzêlæZ1­ØÝ
GN“bˆg(ž÷’8

(ユーザー名、パスワード、AuthorizationType)

MySQL コマンドを使用して行全体を復号化するにはどうすればよいですか?

4

1 に答える 1

2

残念ながら、* を復号化するのではなく、各列を明示的に復号化する必要があります。MySQL のみを使用する場合は、次のことを行う必要があります。

SELECT AES_DECRYPT(column1, 'seed'), AES_DECRYPT(column2, 'seed'), etc.
WHERE Username=AES_ENCRYPT('aydu', 'usa2010');

C# または別のプラットフォームでステートメントを作成する場合は、テーブル構造を照会して SELECT ステートメントを動的に作成できるため、必ずしも各列名を SELECT にハードコーディングする必要はありません。各クエリの前にテーブル構造をクエリすることによるパフォーマンスの低下に注意してください。

SELECT * FROM `information_schema`.`tables`
WHERE table_name = 'crypted_tbl';
于 2012-06-13T10:06:53.230 に答える