Key 加密与安全性
在 v3.41.0 后续版本,加入了敏感 Key 加密功能。默认为关。
为什么需要 Key 加密。
假设黑客通过某种手段数据库被脱库。如果开启了 Key 加密,即便是拿到了全部数据也不能解密某些关键数据,例如配置项中的各类 API Key。
但是,也需要谨慎开启此功能,开启后你需要记住加密秘钥。否则,你也将会永远丢失这些数据。
如何开启
你可以附加 --encrypt_enable
来启动服务。如:
node index.js --encrypt_enable
可以通过附加 --encrypt_key <key>
来指定加密密钥,长度必须为 64 位,且只有小写字母和数字。请牢记此密钥。或者通过环境变量 MX_ENCRYPT_KEY
也可以指定密钥。
⚠️
若开启加密,则需注意密钥长度必须为 64 位且只有小写字母和数字,不然会在初始化时报错。注意这是不可逆的,务必保存自己的秘钥。 API Key.
密钥可以通过 openssl rand -hex 32
命令生成。请务必牢记。
MX_ENCRYPT_KEY
--encrypt_key
不是必须的,默认取机器的
machine-id (opens in a new tab)。
⚠️
此操作时不可逆的,操作前请备份数据库。
自动化加密配置(进阶指令)(非必要)
🚫
此操作时不可逆的,操作前请备份数据库。
cd core
tsx src/migration/helper/encrypt-configs.ts
疑难解答
如果出现 Invalid key length
,请你确定是否开启了此功能,并且 key 的长度是否为 64 位长度,且只有小写字母和数字。