SpringBoot加密配置文件的SQL賬號密碼

一般項目的配置文件裏的信息都是明文的,導致有時候比較敏感的信息也直接暴露得超級明顯,比如SQL的鏈接 賬號 密碼等。可能作爲開發者,開發環境這些暴露了也沒多大關係,但是生產環境就需要謹慎了!

話不多說,我們可以選擇國外牛人寫的SpringBoot的工具 jasypt 進行加密,項目是開源的,Github地址如下:https://github.com/ulisesbocchio/jasypt-spring-boot

1、在Maven項目中引入依賴

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

2、同時需要在application.yml配置文件中先配置密碼,因爲工具是使用該密碼進行加密或者解密的,所以必須保證配置中加密後的串是使用同一密碼加密的,否則項目啓動時也解密不了。

jasypt:
    encryptor:
        password: 123456

3、  可以在測試用例中,對原信息進行加密,使用方法很簡單。簡單的Demo如下:

@RunWith(SpringRunner.class)
@SpringBootTest
@WebAppConfiguration
public class Test {
    @Autowired
    StringEncryptor encryptor;

    @Test
    public void getPass() {
        #直接調用加密的方法
        String mysql = encryptor.encrypt("mysql-username|mysql-password");
    }
}

4、最後在配置文件中放入加密後的字符串就行,如上面的 “mysql” 串

url: ENC(mysql==)
username: ENC(mysql==)
password: ENC(mysql=)

注意 ENC() 是固定的寫法,mysql== 就是你加密後的對應串。

這樣就可以假裝的把敏感信息加密了,哈哈哈之所以說假裝。可能很多人都會有疑問,既然加密的密碼是明文的存在配置文件中,別人一樣可以輕鬆的解密出來。沒錯,確實是這樣。這種加密的方式只能說不能讓人眼一下子看出賬號密碼。只是僞裝了一下,如果hacker拿到了你的項目權限,那麼做任何加密其實都沒有大作用了。所以做好項目和服務器的安全問題纔是最基本的也是最重要的。

OK!OK!OK! 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章