数据安全保护
Mongo-Plus 提供了数据安全保护功能,旨在防止因开发人员流动而导致的敏感信息泄露。从2.1.4版本开始,Mongo-Plus 支持通过加密配置来增强数据库的安全性。
配置加密
Mongo-Plus 允许你使用加密后的字符串来配置数据库连接信息。在配置文件中,
${ENC:}
中的配置项将被视为加密内容。
yaml
mongo-plus:
data:
mongodb:
username: ${ENC:e5fc2ecf9aeb079bd1fdebf1e189e0e7}
password: ${ENC:e9b75f44fe5e83c26d50935429e5d285aec14ae224abe9d08a3e2cab9308732e}
密钥加密
使用 AES 算法生成随机密钥,并对敏感数据进行加密。
java
public static void main(String[] args) throws Exception {
String secretKey = AESExample.generateRandom();
String encryptedData = encrypt("data", secretKey);
System.out.println("密文:"+encryptedData);
}
如何使用
在启动应用程序时,通过命令行参数或环境变量传递密钥。
java
// Jar 启动参数示例(在IDEA中设置Program arguments,或在服务器上设置为启动环境变量)
--mpw.key=rhNFcgdak7P4qDBm
// 单元测试参数示例
@SpringBootTest(args = "--mpw.key=rhNFcgdak7P4qDBm")
注意
- 加密内容必须用
${ENC:}
包裹。 - 随机密钥应由负责人妥善保管,知晓的人越少越好。