一.為什么要使用jasypt庫?
目前springboot單體應用項目中,甚至沒有使用外部配置中心的多服務的微服務架構的項目,開發/測試/生產環境中的密碼往往是明文配置在yml或properties文件中,
這樣就會導致密碼泄露的安全隱患,被不法人員利用從而泄露公司數據信息
因此,jasypt庫能通過密碼加密減少明文密碼泄露的風險;
二.什么是jasypt庫?
參考:http://www.jasypt.org/index.html
Jasypt是一個Java庫,允許開發人員以最小的努力將基本的加密功能添加到他/她的項目中,而無需對密碼學的工作原理有深入的了解。
1.用於單向和雙向加密的高安全性,基於標准的加密技術。加密密碼,文本,數字,二進制文件...
2.與Hibernate透明集成。
3.適用於集成到基於Spring的應用程序中,還可以與Spring Security透明集成。
4.用於加密應用程序(即數據源)配置的集成功能。
5.多處理器/多核系統中高性能加密的特定功能。
6.與任何JCE提供程序一起使用的開放API。
通俗一點就是,方便開發者使用的一個密碼加密庫的Java庫
三.怎么使用jasypt庫?
以單體Springboot項目為例,Springboot版本2.1.x,Java8
1.引入jasypt庫的 maven依賴
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.0.0</version> </dependency>
2.yml文件中配置jasypt 加密密碼
jasypt:
encryptor:
password: Gabriel
3.啟動類添加@EnableEncyptableProperties注解
@SpringBootApplication @MapperScan(basePackages = "com.gabriel.stage.mapper") @EnableEncryptableProperties public class StageApplication { public static void main(String[] args) { SpringApplication.run(StageApplication.class, args); } }
4.通過jar包加密數據庫的明文密碼
password密碼 使用ENC(加密后的密碼)配置