Spring Boot对账号密码进行加密储存

未来避免明文硬编码,我们需要对密码进行加密保存,例如账号密码

方法

在Spring Boot中,可以使用Jasypt(Java Simplified Encryption)库来对敏感信息进行加密和解密。Jasypt提供了一种简单的方式来在应用程序中使用加密算法来保护敏感信息,例如数据库密码、API密钥等。

步骤一、配置maven

要在Spring Boot中使用Jasypt,需要在pom.xml文件中添加以下依赖项

xml 复制代码
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.3</version>
</dependency>
步骤二、配置.yml配置文件(application.yml或者application.properties)
yaml 复制代码
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: myuser
    password: ENC(密文)
步骤三、加密密码解密密码

密文可以使用Jasypt提供的命令行工具或API来生成。在应用程序中,可以使用以下方式来解密密码:

加密

java 复制代码
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方法来解密密码。

相关推荐
福尔摩斯张20 小时前
Linux Kernel 设计思路与原理详解:从“一切皆文件“到模块化架构(超详细)
java·linux·运维·开发语言·jvm·c++·架构
Qiuner20 小时前
Spring Boot AOP(二) 代理机制解析
java·spring boot·后端
回家路上绕了弯20 小时前
分布式与集群:90%的开发者都混淆的两个概念
分布式·后端
PieroPC21 小时前
NiceGui 3.4.0 的 ui.pagination 分页实现 例子
前端·后端
十月南城21 小时前
分布式锁与幂等的边界——正确的锁语义、过期与续约、业务层幂等配合
后端
小兔崽子去哪了21 小时前
文件上传专题
java·javascript
香气袭人知骤暖21 小时前
Nacos 服务发现保证机制解析
java·spring·服务发现
精神病不行计算机不上班21 小时前
[Java Web]Java Servlet基础
java·前端·servlet·html·mvc·web·session
不爱学英文的码字机器21 小时前
【征文计划】从一个小模板开始,深入Rokid AR生态
后端·ar·restful
代码扳手21 小时前
从0到1揭秘!Go语言打造高性能API网关的核心设计与实现
后端·go·api