SpringBoot项目配置文件密码加密(jasypt)

本文介绍了如何在SpringBoot项目中使用jasypt对密码进行加密,包括引入依赖、配置盐值、测试加密以及如何在配置文件中使用加密后的密码。同时,还探讨了使用Druid进行密码加密的方法,包括添加依赖、生成RSA密码、配置文件设置及数据库配置类的创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jasypt由于其使用的是PBEWithMD5AndDES加密方式,每次加密出来的结果都不一样,很适合对数据进行加密.

1、引入依赖

<!-- 数据库加密 -->
<dependency>
      <groupId>com.github.ulisesbocchio</groupId>
      <artifactId>jasypt-spring-boot-starter</artifactId>
      <version>2.0.0</version>
</dependency>

2、然后再yml或者properties中配置

jasypt.encryptor.password=nmyswls

这个是盐值

3、测试类

@RunWith(SpringRunner.class)
@SpringBootTest
public class test_jiami {

    @Autowired
    StringEncryptor stringEncryptor;

    @Test
    public void encryptPwd() {
        String result = stringEncryptor.encrypt("root");
        System.out.println(result);
    }

}

这里面的参数是你的密码,然后返回来的是加密后的密码:yyrqk9reuY5kScmS3D9mWQ==

4、将加密后的密码贴到配置文件中

spring.datasource.password=ENC(yyrqk9reuY5kScmS3D9mWQ==)

注意测试类不要提交上去。

另一种方法:

在你的maven仓库中找到:D:\repository\org\jasypt\jasypt\1.9.2,这个包就是加密的包了

cmd在这个包下执行如下命令,它会返回你加密后的密码:

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="root" password=zhang algorithm=PBEWithMD5AndDES

其中:

input:是数据库的明文密码

password:是机密的盐

algorithm:是加密的方式(默认)

然后在配置文件中把盐加进去就ok了

 

 

补充:

默认jasypt的密钥是放在配置文件中但这样会导致密文和密钥都在配置文件中,所以我把密钥放在程序中。

public static void main(String[] args) {
        /**  配置加解密跟秘钥,与配置文件的密文分开放  */
        System.setProperty("jasypt.encryptor.password", ConstantValue.JASYPT_ENCRYPTOR_PASSWORD);

        SpringApplication.run(OrderApplication.class, args);
}

 

 

springboot 还可以使用druid对密码进行加密

1.首先要加入druid的maven依赖和log4j依赖


<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.10</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
 

2.生成RSA密码

java -cp C:\Users\admin\.m2\mavenrepository\com\alibaba\druid\1.1.10\druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools 123456
 

3、配置文件

spring.datasource.url=jdbc:mysql://localhost:3306/mysql?characterEncoding=utf8
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=admin
spring.datasource.password =v3B2kpWSwA1zlGXL+T9rtcOTXZ3/PfDwckaxIPFr7VGsgZa4o8TGBJ+Qb3VyK1LJGARvaZju/E73trRMEFE28A== 
spring.datasource.publicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANZWTGLh2RCe8Loww1byCWE9X8aOSHu8j0uTtVNe/Cf8l17BNgRdy0+QzA66InWUvHHU03DGoLjS/4tOuoGzlC0CAwEAAQ==
 

4、建数据库配置类

@Configuration

@ConfigurationProperties(prefix = "spring.datasource")

public class DruidDatsSourceConfig {

     ........

    @Bean

    @Primary

    public DataSource druidDataSource() throws Exception {

          DruidDataSource datasource = new DruidDataSource();

          datasource.setPassword(ConfigTools.decrypt(publicKey, password));

         ......

   }

注:DruidDatsSourceConfig 类要在spring boot的扫描路径下

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值