springboot筆記示例八:yml文件數據庫連接redis密碼加密實現使用jasypt加密
本文md文件下載
https://download.csdn.net/download/a254939392/89496228
點擊下載本文md文件
說明
springboot中大多數配置我們都采用yml文件配置,比如數據庫連接,redis連接,等明文,存在安全風險,所以需要在yml文件中使用加密。本文采用開源jasypt加密實現該功能
pom引入
<!--2.1.1 與3版本默認算法有所改變-->
<dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.5</version>
</dependency>
yml加密配置
> yml配置```yaml
jasypt:encryptor:password: 123456 #salt鹽值algorithm: PBEWithMD5AndDES #加密算法,3.x版本需要配置,2.x版本不需要配置iv-generator-classname: org.jasypt.iv.NoIvGenerator #固定配置spring:application:name: xiaobaodata:mongodb:host: 192.27.52.13port: 30010username: iotpassword: ENC(3mVqabPOmvndddddVQ22tpeUNkB01tFT) #需要機密的配置需要增加ENC前綴authentication-database: gasdatabase: gas
使用boot-starter 只需要pom依賴和yaml配置即可。
生成密鑰工具類
package com.example.scengine.utils;import org.jasypt.util.text.BasicTextEncryptor;/*** jasypt-spring-boot-starter 生成密文的工具代碼*/
public class EncryptConfigUtil {public static String salt="123456";public static void main(String[] args) {String password = EncryptConfigUtil.jasyptEncrypt("root);String pwd = EncryptConfigUtil.jasyptDecrypt("3mVqabPOmvnXc7IFVQ22tpeUNkB01tFT");}/*** 加密** @return*/public static String jasyptEncrypt(String encryptString) {BasicTextEncryptor textEncryptor = new BasicTextEncryptor();//加密所需的salttextEncryptor.setPassword(salt);//要加密的數據(數據庫的用戶名或密碼)String password = textEncryptor.encrypt(encryptString);System.out.println("加密后:" + password);return password;}/**** 解密* @param encryptString* @return*/public static String jasyptDecrypt(String encryptString) {BasicTextEncryptor textEncryptor = new BasicTextEncryptor();textEncryptor.setPassword(salt);String pwd = textEncryptor.decrypt(encryptString);System.out.println("解密后:" + pwd);return pwd;}
}