赞
踩
在日常工作中,经常使用数据库明文密码放在配置文件中,java打的包很容易就会被例如360的一些压缩软件解析出来,导致数据库泄露。在此情况下选择使用druid自带的加密机制来对明文密码进行加密处理
<!-- alibaba druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.9</version>
</dependency>
可以使用cmd进行操作,这里不做详细介绍
import com.alibaba.druid.filter.config.ConfigTools; /** * 德鲁伊数据连接池数据库密码加密工具 * * @author king * @date 2022-03-08 */ public class DruidUtil { private static String PUBLIC_KEY = ""; private static String PRIVATE_KEY = ""; public static void main(String[] args) throws Exception { // 密码明文 String password = "123456"; System.out.println("password " + password); String [] keyPair = ConfigTools.genKeyPair(512); // 私钥 PRIVATE_KEY = keyPair[0]; // 公钥 PUBLIC_KEY = keyPair[1]; // 用私钥加密后的密文 password = ConfigTools.encrypt(PRIVATE_KEY, password); System.out.println("privateKey:" + PRIVATE_KEY); System.out.println("publicKey:" + PUBLIC_KEY); // 密文 System.out.println("ciphertext:" + password); String decryptPassword = ConfigTools.decrypt(PUBLIC_KEY, password); // 原密码 System.out.println("originalPassword" + decryptPassword); } }
运行后的到的就是我们需要的公钥,私钥,密文
在大部分博客以及度娘里,都把publicKey直接放在这里,这和皇帝的新衣有什么区别
#整体配置 cloud: config: url: jdbc:mysql://127.0.0.1:3306/work?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=UTC password: RpVa40F4UTcL5E3xPA8dOguuOJxb5LdvEFlj1nsOfkD7KNiwT9BTpHFUcAI7J1iw== spring: application: name: server-stare datasource: type: com.alibaba.druid.pool.DruidDataSource druid: url: ${cloud.config.url} username: root password: ${cloud.config.password} #这里配置的是sql可合并、执行允许最大延时、可加密、加密key connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000;config.decrypt=true;config.decrypt.key=${cloud.config.key} #加密
这里用的是idea
// 你自己的公钥
--cloud.config.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJE1uhesdQeAryXchQlZaMCb+jucaoSTFgY/UaWIdY9mRrn6hdahUL1NPSJjyTK5dv5ZUqjGe8+0CAwEAAQ==
将公钥放在启动项的program arguments里就可以啦
java -jar startApplication.0.0.1.jar --cloud.config.key='你的公钥'
看到这里是不是就熟悉了,和你使用的 --server.port=8080是不是一毛一样
tomcat这里没研究,不做赘述。
在你写脚本文件启动项目的时候,不要在包旁直接放置脚本好吗
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。