1. 程式人生 > >spring boot/cloud配置檔案加密jasypt

spring boot/cloud配置檔案加密jasypt

場景:

在開發中,spring boot的配置檔案會有資料庫連線等資訊,如果是生產環境的資料庫賬號密碼,那麼其他的開發人員也能看到,這樣就比較危險了,為了防止別人能看到配置檔案中的資料庫賬號密碼等核心資料資訊,可以給密碼加密

使用

1、maven依賴引入

 <dependency>
            <groupId>com.github.ulisesbocchio</groupId>
            <artifactId>jasypt-spring-boot-starter</artifactId>
            <version
>
1.14</version> </dependency>

2 、配置檔案中設定密碼的鹽
在application.properties中新增此配置項
[email protected]
或者在application.yml檔案中新增

jasypt:
  encryptor:
    password: xfdadfasdfa@1212121f

3 、生產金鑰



import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import
org.jasypt.encryption.pbe.StandardPBEByteEncryptor; import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig; /** * Jasypt加密類 * @author lulei * @date 2018年8月20日 下午7:12:40 * @version v1.0 */ public class JasyptUtils { /** * Jasypt生成加密結果 * * @param password 配置檔案中設定的加密密碼 jasypt.encryptor.password * @param
value 待加密值 * @return */
public static String encryptPwd(String password, String value) { PooledPBEStringEncryptor encryptOr = new PooledPBEStringEncryptor(); encryptOr.setConfig(cryptOr(password)); String result = encryptOr.encrypt(value); return result; } /** * 解密 * * @param password 配置檔案中設定的加密密碼 jasypt.encryptor.password * @param value 待解密密文 * @return */ public static String decyptPwd(String password, String value) { PooledPBEStringEncryptor encryptOr = new PooledPBEStringEncryptor(); encryptOr.setConfig(cryptOr(password)); String result = encryptOr.decrypt(value); return result; } public static SimpleStringPBEConfig cryptOr(String password) { SimpleStringPBEConfig config = new SimpleStringPBEConfig(); config.setPassword(password); config.setAlgorithm(StandardPBEByteEncryptor.DEFAULT_ALGORITHM); config.setKeyObtentionIterations("1000"); config.setPoolSize("1"); config.setProviderName("SunJCE"); config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator"); config.setStringOutputType("base64"); return config; } public static void main(String[] args) { // 加密,打印出來的就是密碼 System.out.println(encryptPwd("[email protected]", "123456")); // 解密 System.out.println(decyptPwd("[email protected]", "jh5b6352sFbibcZqLYPStg==")); } }

4、把生成的密碼替換
這裡寫圖片描述
替換成紅色框部分即可