admin管理员组文章数量:1589746
文章目录
- 前言
- 实践
前言
在我们日常开发中,我们可能很随意把数据库密码直接明文暴露在配置文件中,在开发环境可以这么做,但是在生产环境,是相当不建议这么做,毕竟安全无小事,谁也不知道哪天密码就莫名其妙泄露了。今天就来聊聊在springboot项目中如何对数据库密码进行加密
实践
引入maven依赖
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
在Springboot配置文件中配置秘钥
jasypt:
encryptor:
password: EbfYkitulv73I2p0mXI50JMXoaxZTKJ7
测试的时候可以这样写 秘钥放在配置文件是不太安全的
在IDE工具中我们可以将秘钥放在启动参数中
jasypt.encryptor.password=EbfYkitulv73I2p0mXI50JMXoaxZTKJ7
生产环境启动项目时添加参数即可
java -jar -Djasypt.encryptor.password=EbfYkitulv73I2p0mXI50JMXoaxZTKJ7 xxx.jar
生成密文
建一个测试类来生成密码加密后的密文
@RunWith(SpringRunner.class)
@SpringBootTest
public class TestDemo {
@Autowired
StringEncryptor stringEncryptor;//密码解码器自动注入
@Test
public void test() {
String name = encryptor.encrypt("root");
String password = encryptor.encrypt("123!@#");
System.out.println(name);//n3UKAujtutC8u9qJaSm1uA==
System.out.println(password );//bfc7g2lOcAP79kVGo9MmGA==
}
}
也可以在本地通过Java命令生成 input 为要加密的内容 password为秘钥
java -cp E:\repository\org\jasypt\jasypt\2.1.0\jasypt-2.1.0.jar
org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI
input="root"
password=EbfYkitulv73I2p0mXI50JMXoaxZTKJ7
在配置文件使用
将配置文件中的明文密码改为加密后的密码 ,外面包一个ENC()
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/user?serverTimezone=UTC
username: ENC(n3UKAujtutC8u9qJaSm1uA==)
password: ENC(bfc7g2lOcAP79kVGo9MmGA==)
本文标签: 配置文件密码数据库SpringBoot
版权声明:本文标题:SpringBoot配置文件数据库密码加密 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1728075001a1144372.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论