0

我工作的公司有与 GDPR 相关的新要求。他们的需求是使用 AES256 加密对数据库中的所有用户数据进行加密。第二条规则是不允许数据库存储用于解密数据的密钥。它存储在 c# 应用程序中,所有加密/解密都在那里完成。

因此,现在我们遇到了很大的性能问题。我们被迫从数据库中加载所有数据,以便在内存中对其进行排序和分页,而不是使用 SQL ORDER BY 和 LIMIT 命令。

我的问题是您是否有任何改进流程的想法?也许有一个散列函数允许元素保持正确的字母顺序?让我知道。

4

1 回答 1

1

不,这是您必须为安全性付出的代价。如果加密数据像未加密数据一样排序,则可以通过与已知值比较来猜测内容。

最好的选择通常是选择要加密的列和不加密的列:不需要信用卡号上的索引。

如果您必须使用加密值进行排序,那么您几乎会迷路。您唯一的机会是限制结果集。

尝试协商妥协,例如以明文形式存储名称的前两个字符。让您的客户明白您无法同时获得速度和安全性;必须在两个方向上作出妥协。

于 2020-11-17T11:20:25.380 回答