我正在构建一个需要存储敏感信息的应用程序,这意味着数据在我的数据库中是加密的,因此有权访问数据库的黑客/员工无法破译敏感数据.However, it still needs to be searchable (on a certain level).

我知道可能需要做出某些妥协.例如,我愿意保留一些未加密的数据属性,以便在必要时使它们可索引,即but "the main body" must be encrypted.

对于需要授权人员查看、搜索和/或排序的敏感数据,存储这些数据的最佳做法和方法是什么?

(我在考虑从"Body"中提取Non stop words,并在加密Body之前将它们随机放在一个字段中,然后将该字段提供给搜索索引器,我怀疑这是否提供了任何真正的安全性.)

推荐答案

我目前正在为同样的问题寻找解决方案.

我找到的最好的 idea 之一,是劳尔·加西亚(Raul García,https://docs.microsoft.com/en-us/archive/blogs/raulga/indexing-encrypted-data岁)的这篇文章.

他建议使用MAC来创建可编索引的列.该解决方案适用于MS SQL Server,但也可以应用于其他系统.

Database相关问答推荐

使用 golan 查询 mongodb 中的集合并返回 id 作为字符串

如何将初始数据放入数据库

优雅地处理 EJB/JPA 环境中的约束冲突?

什么是hibernate annotated类中使用的 catalog?

管理数据库中的产品计数

TSQL - 表值函数中的 If..Else 语句 - 无法通过

如何将新架构添加到现有的 Visual Studio 数据库项目?

用于存储年份的 MySQL 类型:Smallint 或 Varchar 或 Date?

如果限制在本地机器上,最好使用 R 和 SQL

:force => true 在模式文件中是什么意思

如何决定使用什么 [Sqlite、Realm、CoreData、User-default、JSON 文件] 来存储 iOS 数据?

在 MySQL 存储过程中使用if和else

如何在 liquibase 中标记变更集以进行回滚

PostgreSQL 唯一索引和字符串大小写

MySQL中的eq_ref和ref类型是什么意思解释

在 PostgreSQL 中索引空值

如何在数据库中获取原始的created_at值(不是转换为 ActiveSupport::TimeWithZone 的对象)

使用 PHP/MySQL 导入 CSV 数据

使用命令行在 Mysql 中导入压缩文件

数据库事务是否防止竞争条件?