Spring Boot对账号密码进行加密储存
未来避免明文硬编码,我们需要对密码进行加密保存,例如账号密码
方法
在Spring Boot中,可以使用Jasypt(Java Simplified Encryption)库来对敏感信息进行加密和解密。Jasypt提供了一种简单的方式来在应用程序中使用加密算法来保护敏感信息,例如数据库密码、API密钥等。
步骤一、配置maven
要在Spring Boot中使用Jasypt,需要在pom.xml文件中添加以下依赖项
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
步骤二、配置.yml配置文件(application.yml或者application.properties)
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: myuser
password: ENC(密文)
步骤三、加密密码解密密码
密文可以使用Jasypt提供的命令行工具或API来生成。在应用程序中,可以使用以下方式来解密密码:
加密
import org.jasypt.encryption.StringEncryptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class MyComponent {
@Autowired
private StringEncryptor encryptor;
public void doSomething() {
String password = encryptor.decrypt("密文");
// 使用解密后的密码进行操作
}
}
StringEncryptor是由Jasypt自动配置的bean,可以直接注入到组件中使用。然后,可以使用decrypt方法来解密密码。