gpt4 book ai didi

node.js - Node js Mongoose 使用 mongoose-encryption 加密数据

转载 作者:太空宇宙 更新时间:2023-11-03 21:57:36 24 4
gpt4 key购买 nike

我正在尝试加密 mongodb 中的数据。我正在使用 mongoose-encryption 插件,但出现这样的错误:

“抛出新错误('必须提供 options.secret 或同时提供 options.encryptionKey 和 options.signingKey');”

这是我的代码:

var UserSchema = new mongoose.Schema({
profile: ProfileSchema,
timeStamp: Date,
created: Date,
email: {
type: String,
sparse: true
},
username: {
type: String,
},
password: {
type: String,
}
})

var encKey = process.env.SOME_32BYTE_BASE64_STRING
var sigKey = process.env.SOME_64BYTE_BASE64_STRING

UserSchema.plugin(encrypt, { encryptionKey: encKey, signingKey: sigKey , encryptedFields: ['email']})

那么,我的代码中缺少什么?我不知道这个错误。因为我只是按照 here 中的步骤操作但失败了。我是 Node 和 Mongoose 的新手。请帮助我...无论如何谢谢...

最佳答案

您原来的错误是因为未设置 process.env.SOME_32BYTE_BASE64_STRINGprocess.env.SOME_64BYTE_BASE64_STRING

你的第二个错误是因为 var encKey = 'a2V5YWxpYXNpc3RoZWJlc3R3b3cqweda'var sigKey = 'a2V5YWxpYXNpc3RoZWJlc3R3b3cqwedaa2V5YWxpYXNpc3RoZWJlc3R3b3cqweda'

分别无效的 32BYTE_BASE64_STRING 和 64BYTE_BASE64_STRING。

要生成有效的字符串,您可以使用加密模块:

//32 bytes
require('crypto').randomBytes(32, function(err, buffer) {
var token = buffer.toString('base64');
});

//64 bytes
require('crypto').randomBytes(64, function(err, buffer) {
var token = buffer.toString('base64');
});

关于node.js - Node js Mongoose 使用 mongoose-encryption 加密数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36283058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com