在 npm mongoose-encryption 模块中使用 var secret

Use of var secret in npm mongoose-encryption module

var secret = process.env.SOME_LONG_UNGUESSABLE_STRING;
userSchema.plugin(encrypt, { secret: secret });

使用 npm mongoose-encryption 模块作为密码 encryption,但我不明白为什么要使用该变量 secret。该变量的作用是什么?

正如 kedar sedai 在他的 中所说,process.env.SOME_LONG_UNGUESSABLE_STRING 是存储在 .env 文件 中的密钥 OS' 环境变量。

这个秘密将按照 AES-256-CBC 的规定使用(加密方法 mongoose-encryption implements);这意味着您的 SOME_LONG_UNGUESSABLE_STRING 将用作密码方法的一部分,将您的字符串同时用作加密密钥和解密密钥(因此您可以将 AES 称为 对称算法 ).

因此,如果您更改此字符串,则之前加密的任何内容都将无法再解密,除非您使用完全相同的秘密。

简而言之,“秘密”变量几乎可以确保您的加密安全,这也是它应该不可猜测的原因。您可以阅读有关此方法的更多信息 here.