jasypt對配置文件的數(shù)據(jù)加密與解密方式
介紹
- Jasypt是一個Java庫,可以使開發(fā)者不需太多操作來給Java項目添加基本加密功能,而且不需要知道加密原理。
- Jasypt能夠以很簡單的方式為Java項目提供加密功能。
- Jasypt還符合RSA標(biāo)準(zhǔn)的基于密碼的加密,并提供了無配置加密工具以及新的、高可配置標(biāo)準(zhǔn)的加密工具。
作用
在配置文件中寫密文,程序啟動后自動解密,再使用這個解密后的信息對MySQL或Redis等進行連接,可以隱藏一些配置文件中的敏感信息,如MySQL用戶名密碼、Redis密碼等。
快速開始
導(dǎo)入依賴
<!--jasypt--> <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency>
加密數(shù)據(jù)
寫一個main方法,加密數(shù)據(jù)庫的用戶名和密碼,得到加密后的用戶名和密碼。
public static void main(String[] args) { StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor(); /*配置文件中配置如下的算法*/ standardPBEStringEncryptor.setAlgorithm("PBEWithMD5AndDES"); /*配置文件中配置的password*/ standardPBEStringEncryptor.setPassword("EWRREWRERWECCCXC"); /*要加密的文本*/ String username = standardPBEStringEncryptor.encrypt("root"); String password = standardPBEStringEncryptor.encrypt("password"); /*將加密的文本寫到配置文件中*/ System.out.println("username = " + username); System.out.println("password = " + password); }
得到加密后的用戶名和密碼。
username = aL72g6IaZDwxZE63fhujOA== password = V+sgI2xsjCIh2gHs15jN8CyAwGzpwr6k
配置文件
password是必須自己定義的,其他都可以不配置,有默認(rèn)的配置。
在敏感信息處使用對應(yīng)的ENC(密文)代替
# jasypt 配置加密 jasypt: encryptor: # 密碼鹽值(自定義) password: jasypt # 加密算法設(shè)置 algorithm: PBEWithMD5AndDES spring: datasource: url: jdbc:mysql://localhost:3306/hm_project_v4?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver username: ENC(aL72g6IaZDwxZE63fhujOA==) password: ENC(V+sgI2xsjCIh2gHs15jN8CyAwGzpwr6k)
這樣就實現(xiàn)了對配置文件的數(shù)據(jù)進行加密或者解密了。
注意:
main方法的algorithm和password 要與 配置文件的相同【重要】
獲取配置文件中的數(shù)據(jù)
在配置文件中寫密文,程序啟動后自動解密,我們使用正常的@Value方式獲取的數(shù)據(jù)即為解密后的數(shù)據(jù)。
@RestController public class MUserController { @Value("${spring.datasource.password}") private String password; @GetMapping("/properties") public String getProperties() { return password; } }
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring+Vue整合UEditor富文本實現(xiàn)圖片附件上傳的方法
這篇文章主要介紹了Spring+Vue整合UEditor富文本實現(xiàn)圖片附件上傳的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07SpringBoot通過參數(shù)注解自動獲取當(dāng)前用戶信息的方法
這篇文章主要介紹了SpringBoot通過參數(shù)注解自動獲取當(dāng)前用戶信息的方法,文中使用HandlerMethodArgumentResolver 類來實現(xiàn)這個功能,并通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下2024-03-03