如何为MongoDB Community Edition实现静态数据加密?

时间:2017-10-11 08:05:53

标签: node.js mongodb security encryption mongodb-query

我已经通过MongoDB docs解释了如何配置仅在MongoDB Enterprise中可用的加密。

如何在 MongoDB Community Edition v3.4中实现静态数据?

2 个答案:

答案 0 :(得分:4)

几个月前,我在问自己同样的问题。这是我到目前为止找到的选项列表:

答案 1 :(得分:0)

Alex Blex suggested类似,您还有其他选项,而不是社区版。

但是,如果您仍想使用Community Edition,

您可以使用mongoose.js与mongoDB进行交互。它有吸气剂和制定者,可以满足您的要求:
http://mongoosejs.com/docs/2.7.x/docs/getters-setters.html

在您的mongoose架构中,您可以为字段指定getset函数。

var mySchema = new Schema({
    name: {
        type: String,
        default: '',
        trim: true,
        required: 'Please enter group name',
        unique: true,
        get: decryptFunction,
        set: encryptFunction
    }
});
mySchema.set('toObject', {getters: true});
mySchema.set('toJSON', {getters: true});

只要您为字段分配任何值,就会执行set。它将该值作为参数,然后您可以编写自己的加密逻辑。

只要您访问字段的值,就会执行get。它将加密值作为参数,您可以在那里编写解密逻辑。

您必须撰写decryptFunctionencryptFunction

但是,您将无法使用原始值查询这些字段。由于mongodb不知道文本是加密的。