繁体   English   中英

MongoDb 场加密

[英]MongoDb Field Encryption

我正在尝试建立一个系统,我可以在其中收集具有加密字段的用户并在这些字段上进行搜索。

我试过查看 MongoDB 文档,但没有明确的路线

我想要这样的东西

{
    fname : John,
    lname : Smith,
    ssn : "555-55-5555"
}

看起来像这样

{
    fname : John,
    lname : Smith,
    ssn : "fweiubv3b443hbv4f48h"
}

然后可以进行类似的搜索

db.users.find({ssn : "555-55-5555"})

目标是运行模式并创建集合

db.createCollection("user", {
    "validator": {
       "$jsonSchema": {
           ....
});

解决此问题的常用策略需要 model 上的两个字段。 一个是hash,另一个是加密的结果。

以您的 SSN 为例:

存储

  • 使用key1获取明文 SSN 和 HMAC。
  • 获取明文 SSN 并使用 AAED 模式(如GCMkey2 )对其进行加密。
  • 将 hash 和加密结果存储在数据库文档或其他文件中。 ssn_hashssn_enc这样的名称可能是合适的。

向上看

  • 获取您正在搜索的 SSN 并使用key1对其进行 HMAC。
  • ssn_hash上查找上述结果。

获取明文

  • 但是查找数据库文档。
  • 使用key2解密ssn_enc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM