我正在構建一個小型Web應用程序,該應用程序將爲每個插入的人員保留大約10條信息。由於數據保護,大部分信息必須加密。通配符搜索MySQL數據庫中的加密數據?
使用CodeIgniter框架和CodeIgniter加密類,我可以在應用程序端將信息存儲在數據庫中之前進行編碼。 CodeIgniter加密類使用PHP的mcrypt函數和AES_256密碼。
我遇到的問題是我需要允許應用程序的用戶搜索使用通配符搜索存儲的信息,也可能在以後通過API進行搜索。
任何機構都會遇到類似問題的解決方案。我已經閱讀了有關MySQL AES_ENCRYPT和AES_DECRYPT的內容,但他們仍然需要以明文形式傳遞密鑰,我不願意這樣做。
我目前的結論是,如果我希望繼續這條路線,那麼全表解密是我每次搜索時唯一的解決方案(顯然不好)。
+1橫向思維,並使用散列,以確保敏感的關鍵字仍然保持敏感 –
嗨感謝您的答覆,我想我明白你的建議,但索引仍然不會在嘗試做'where_in'或'like'搜索,例如:search%CHR%將返回一個記錄,其中包含單詞CHRIS。也許我讀錯了,如果有的話,你可以詳細說明一下。 – user1530205
正確的通配符搜索實際上並不適用於倒排索引,但對於正常搜索非常有效。你可以做通配符搜索的唯一方法是解密整個事情。 –