Spring 3.1.2 および Hibernate 4.1.7 とデータベース SQL Server 2005 を使用して Web アプリケーションを開発しています。
テーブルでは、暗号化された列があり、たとえば次のようなクエリを実行する必要があります。
OPEN SYMMETRIC KEY PasswordFieldSymmetricKey
DECRYPTION BY PASSWORD = 'myPassword'
SELECT id,
plain,
cipher,
CONVERT(varchar(50),
DecryptByKey(cipher)) AS 'Decrypted'
FROM TS_OWN.cryptest;
GO
CLOSE SYMMETRIC KEY PasswordFieldSymmetricKey
解決策として、誰かが復号化を管理するビューを作成することを提案しましたが、復号化されたデータを誰も見ないようにする必要があり、もちろん DBA はそのビューを照会できます。
同時に、パフォーマンス上の理由からデータベース エンジンによって実行されることが予想されるいくつかの重い集約ロジックのため、Java 側で復号化を実行したくありません。
可能な解決策は、Java 側で集計値の復号化を実行して、復号化、集計を実行してから結果をもう一度暗号化するビューを作成することです。
誰かが代替案を知っていますか?
みんなありがとう、 ルカ