SpringBoot实现数据库密码的加密操作

<!-- 开启数据库加密 -->
<!-- https://mvnrepository.com/artifact/com.github.ulisesbocchio/jasypt-spring-boot-starter -->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>1.5-java7</version>

</dependency>

 通过dos执行如下命令:java -cp  D:\maven_repository\org\jasypt\jasypt\1.9.2\jasypt-1.9.2.jar  org.jasypt.intf.cli.JasyptPBEStringEncryptionCLIinput="123456" password=e9fbdb2d3b21 algorithm=PBEWithMD5AndDES

其中标红部分为需要加密的部分,password为加密需要的salt值,algorithm为加密算法

执行上面的命令后会出现如下内容,其中OUTPUT部分为加密后的内容


配置文件中需要配置两个地方:

#加密使用的salt值
jasypt.encryptor.password=e9fbdb2d3b21

通过ENC进行密码解密操作

spring.datasource.password=ENC(uKPcUQufY8pCArG9T+x+SA==)


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在Spring Boot中,可以使用Jasypt(Java Simplified Encryption)来对数据库密码进行加密。Jasypt是一个Java库,可以用来加密和解密文本和二进制数据。在Spring Boot中使用Jasypt,需要在pom.xml文件中添加Jasypt依赖,然后在application.properties或application.yml文件中配置加密算法和密钥。具体步骤如下: 1. 在pom.xml文件中添加Jasypt依赖: ``` <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3..3</version> </dependency> ``` 2. 在application.properties或application.yml文件中配置加密算法和密钥: ``` jasypt.encryptor.algorithm=PBEWithMD5AndDES jasypt.encryptor.password=mySecretKey ``` 3. 在代码中使用Jasypt对数据库密码进行加密: ``` @Autowired private Environment environment; @Bean public DataSource dataSource() { BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName(environment.getProperty("spring.datasource.driver-class-name")); dataSource.setUrl(environment.getProperty("spring.datasource.url")); dataSource.setUsername(environment.getProperty("spring.datasource.username")); String password = environment.getProperty("spring.datasource.password"); String decryptedPassword = jasyptStringEncryptor().decrypt(password); dataSource.setPassword(decryptedPassword); return dataSource; } @Bean(name = "jasyptStringEncryptor") public StringEncryptor jasyptStringEncryptor() { StringEncryptor encryptor = new PooledPBEStringEncryptor(); SimpleStringPBEConfig config = new SimpleStringPBEConfig(); config.setPassword(environment.getProperty("jasypt.encryptor.password")); config.setAlgorithm(environment.getProperty("jasypt.encryptor.algorithm")); config.setKeyObtentionIterations("100"); config.setPoolSize("1"); config.setProviderName("SunJCE"); config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator"); config.setStringOutputType("base64"); encryptor.setConfig(config); return encryptor; } ``` 在上面的代码中,使用@Autowired注解注入了Environment对象,用于获取application.properties或application.yml文件中的配置信息。在dataSource()方法中,通过jasyptStringEncryptor()方法获取StringEncryptor对象,然后使用decrypt()方法对数据库密码进行解密。在jasyptStringEncryptor()方法中,设置了加密算法、密钥等配置信息。 通过以上步骤,就可以使用Jasypt对数据库密码进行加密了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值