2013-05-01 31 views
0

我有一個JPA的Java應用程序,我使用的是Oracle DB。 實體的一個屬性需要在保存到數據庫之前進行加密。 我正在使用應用程序加密Base64。 我有一個命名查詢根據此屬性搜索實體。 現在由於加密,我需要先加密來自應用程序的值並在數據庫中搜索加密值,但查詢無法找到具有此值的實體。使用NamedQueries查詢加密列

使用加密值的命名查詢有問題嗎? 有沒有解決方案?

感謝

回答

0

夫婦的事情,Base64是沒有編碼加密等是不是隱藏數據的安全方式。除非你在base64編碼之前用別的東西加密它,否則你可能想改變它。

的DB不應該有它的問題,它應該只把它像任何其他字符串。雖然在數據庫字段長度小於存儲加密字符串所需的長度之前,我遇到過這個問題。

檢查數據庫中手動的情況下,當你插入密碼也被截斷。此外,在SQL客戶端運行測試,以確保它出現異常行爲,如果它在一個SQL客戶端應用程序不發送正確的值到數據庫中運行(或者是過濾出來基於其他一些領域)

+0

領域長度足夠長,值不會被截斷。當我只是在DB中執行查詢時,它很好。問題在於指定的查詢。 – user2307713 2013-05-01 16:32:26

+0

在sql客戶端發生了什麼? – cowls 2013-05-01 16:32:42

+0

這也將發佈您的代碼 – cowls 2013-05-01 16:35:11