sql-server - 如果用户相关数据被加密,您如何对这些列执行搜索?
问题描述
如果我有一个包含 100 万用户的 users 表,并且出于安全合规性原因,我必须加密用户的名字、姓氏和电子邮件地址,我该如何提供搜索功能?
当数据被加密并存储在varbinary
列类型中时,如何允许我的应用程序的用户根据名字、姓氏和电子邮件地址的部分匹配来搜索用户?
如果我必须解密整个数据库来执行查询,那么当我们的数据库中有 100 万用户时,这将是不切实际的。
解决方案
以今天的标准衡量,100 万用户的数据非常小——远低于演出。您可以在应用程序启动时将整个数据库加载到内存中,并对所有名称使用反向索引,可能在有序映射下也允许前缀搜索,或者使用内存中的 NoSQL(例如 Lucene)来完成繁重的工作.
尽管加载数据需要几秒钟的时间,但查找速度会很快——速度快到可以放置一个“随你输入”的输入框。
推荐阅读
- matplotlib - 将 plt.contour 转换为 np.array(等高线图形值转换为 np.array)
- r - R. 使用调查、样条和仅一个自变量值的错误预测
- reactjs - 使用 React 状态更改 antd 库中按钮的加载状态
- javascript - 如何更改按钮onclick jQuery的当前背景颜色
- django - 如何将字段值从一个模型对象传递到另一个模型对象?
- python - 监视 nodemon js 或 npm 中的新文件创建事件
- c# - 如何限制我的玩家在 Unity 中重生的次数?
- sql-server - EF-Core - 数据库首次迁移
- laravel - 使用 wheres from items 验证数组项
- python - 如何从 .whl 文件安装 pip