[英]Search filter on encrypted data in MySQL
查詢描述:假設我有一個數據庫表,該表以加密形式存儲所有用戶的數據。 我具有管理員可以搜索用戶數據的功能。 現在的問題是,管理員將在文本框中輸入普通文本,我必須根據管理員的輸入過濾用戶列表(每次文本更改時)。 因此,與此同時,我擁有大量加密形式的數據,我必須根據Admin輸入的常規文本對其進行過濾。
到目前為止,我提出的解決方案是,首先解密所有數據,然后再應用過濾器。 但是我很好奇,如果我的數據庫中有數百萬條記錄,那么當前的方法似乎毫無用處且效率低下。
有人可以幫助我以最有效的方式搜索加密數據嗎?
任何幫助將不勝感激!
謝謝。
到目前為止,我提出的解決方案是,首先解密所有數據,然后再應用過濾器。 但是我很好奇,如果我的數據庫中有數百萬條記錄,那么當前的方法似乎毫無用處且效率低下。
您是正確的,這不是可擴展的解決方案。 如果您想深入研究此問題,請參閱: 使用PHP和SQL構建可搜索的加密數據庫 。
您想要做的是:
HMAC-SHA256(plaintext, separate_key)
sodium_crypto_pwhash()
使用sodium_crypto_pwhash()
或hash_pbkdf2()
。 這為您提供了兩全其美的優勢:既可以抵御被動和主動攻擊,又可以在快速SELECT查詢中使用的數據加密。
更新(2019-03-27): 而不是自己構建它,而是查看實現此設計的CipherSweet 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.