我用AES_DECRYPT將敏感數據存儲在mysql表中。現在桌子大約是50 Mb。如何在AES_DECRYPT的大表中搜索?
我有一個web界面(用php),訪問者可以在其中搜索數據。我進行了LIKE搜索:
SELECT AES_DECRYPT(content,'salt') FROM table
WHERE CONVERT(AES_DECRYPT(content,'salt') USING utf8) LIKE '%search%'
它工作正常,但它變得非常慢。你有什麼想法如何結合良好的安全性和良好的搜索功能?
您認爲您通過以這種方式使用加密功能來實現哪些安全性優勢? RDBMS和應用程序在傳輸時可以訪問密鑰和明文,所以唯一的好處是在磁盤上休息。即使如此,如果該磁盤也包含應用程序代碼,那麼它將保存解密密鑰(即使不是,例如在SQL日誌中也可能會這樣做):因此,您可能只通過默認方式實現了[安全性](http:// en.wikipedia.org/wiki/Security_through_obscurity) - 毫無意義。當然這很慢:索引不能使用,所以MySQL必須執行全表掃描。 – eggyal