1. 程式人生 > >springboot 配置檔案資料庫地址加密

springboot 配置檔案資料庫地址加密

最近在重構一個架構,因為專案是對接手機端應用,所以選用了springboot  ,但是想到配置檔案中的地址不可以暴露在伺服器上的

參考部落格https://blog.csdn.net/sz85850597/article/details/80396321

引入依賴

 <!--jasypt 配置檔案資料加密依賴-->
        <dependency>
            <groupId>com.github.ulisesbocchio</groupId>
            <artifactId>jasypt-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

因為配置檔案

@Configuration
public class EncryptionPropertyConfig {

    @Bean(name="encryptablePropertyResolver")
    public EncryptablePropertyResolver encryptablePropertyResolver() {
        return new EncryptionPropertyResolver();
    }

    class EncryptionPropertyResolver implements EncryptablePropertyResolver {

        @Override
        public String resolvePropertyValue(String value) {
            if(StringUtils.isBlank(value)) {
                return value;
            }
            // 值以
[email protected]
開頭的均為DES加密,需要解密 if(value.startsWith("[email protected]")) { return resolveDESValue(value.substring(11)); } // 不需要解密的值直接返回 return value; } private String resolveDESValue(String value) { // 自定義DES密文解密 String decode=""; try{ decode = DESCode.decode(value); }catch (Exception e){ e.printStackTrace(); System.out.println("解密失敗!:"+ value); } System.out.println("value :"+value +" :"+decode); return decode; } } }

我再配置檔案中用到的是DESC 加密方式,所以呢,你可以配置自己的解密方式進行解密

你也可以自己定義配置檔案能的加密好的字串的開頭形式

把你自己加密好的串放到配置檔案當中就可以了(如圖例子),啟動專案會自動讀取進行解密並配置,無需其他操作

完!