亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

使用Jasypt對(duì)SpringBoot配置文件加密

codergarden / 1553人閱讀

摘要:所以這里我們就需要對(duì)數(shù)據(jù)庫的用戶名和密碼進(jìn)行加密,這也是本文的由來。本文采用對(duì)配置文件加密的相關(guān)方法,其實(shí)呢,也還有其他方案,具體的會(huì)在后面的相關(guān)文章中說明。

前言

在日前安全形勢(shì)越來越嚴(yán)重的情況下,讓我意識(shí)到在項(xiàng)目中存在一個(gè)我們經(jīng)常忽略的漏洞,那就是我們的項(xiàng)目的配置文件中配置信息的安全,尤其是數(shù)據(jù)庫連接的用戶名和密碼的安全。所以這里我們就需要對(duì)數(shù)據(jù)庫的用戶名和密碼進(jìn)行加密,這也是本文的由來。本文采用Jasypt對(duì)Spring Boot配置文件加密的相關(guān)方法,其實(shí)呢,也還有其他方案,具體的會(huì)在后面的相關(guān)文章中說明。

引入jasypt

    com.github.ulisesbocchio
    jasypt-spring-boot-starter
    2.0.0
1.生成要加密的字符串 1.1 將數(shù)據(jù)庫的用戶名和密碼進(jìn)行加密
@Test
    public void contextLoads() {
        BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
        //加密所需的salt(鹽)
        textEncryptor.setPassword("1Qaz0oKm");
        //要加密的數(shù)據(jù)(數(shù)據(jù)庫的用戶名或密碼)
        String username = textEncryptor.encrypt("root");
        String password = textEncryptor.encrypt("root");
        System.out.println("username:"+username);
        System.out.println("password:"+password);
    }

輸出信息

username:NZmLHOOHX0SEjc285iG9YQ==
password:1JByM5wu5o+9H1Ba2o++Pg==
2019-06-14 14:55:49.863  INFO 8904 --- [       Thread-3] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService "applicationTaskExecutor"
2019-06-14 14:55:49.863  INFO 8904 --- [       Thread-3] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit "default"
2019-06-14 14:55:49.863  INFO 8904 --- [       Thread-3] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown initiated...
2019-06-14 14:55:49.878  INFO 8904 --- [       Thread-3] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown completed.
1.2. 或者使用Maven下載好的jar包加密Mavenorgjasyptjasypt2.0.0jasypt-2.0.0.jar
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI password=1Qaz0oKm algorithm=PBEWithMD5AndDES input=root

輸出信息

----ENVIRONMENT-----------------
Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.171-b11

----ARGUMENTS-------------------
input: root
algorithm: PBEWithMD5AndDES
password: 1Qaz0oKm 

----OUTPUT----------------------
NZmLHOOHX0SEjc285iG9YQ==

拷貝-OUTPUT-下的結(jié)果即可

2.配置properties文件

將生成的加密串配置ENC(加密串)到application.properties中

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
    username: ENC(GHK23XVFNHoQQ97vIW523Q==)
    password: ENC(aTKef0XcG05Cfzao92EqqQ==)
    data-username: com.mysql.cj.jdbc.Driver
  jpa:
    show-sql: true
    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
    database: MYSQL
    hibernate:
      ddl-auto: update
jasypt:
  encryptor:
    password: 1Qaz0oKm #加密所需的salt(鹽)
    #algorithm: PBEWithMD5AndDES   # 默認(rèn)加密方式PBEWithMD5AndDES,可以更改為PBEWithMD5AndTripleDES

加密方式對(duì)應(yīng)的類為BasicTextEncryptor和StrongTextEncryptor

private final StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();

    public BasicTextEncryptor() {
        this.encryptor.setAlgorithm("PBEWithMD5AndDES");
    }
private final StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();

    public StrongTextEncryptor() {
        this.encryptor.setAlgorithm("PBEWithMD5AndTripleDES");
    }

3.部署時(shí)配置salt(鹽)值

1. 為了防止salt(鹽)泄露,反解出密碼.可以在項(xiàng)目部署的時(shí)候使用命令傳入salt(鹽)值

java -jar -Djasypt.encryptor.password=1Qaz0oKm xxx.jar

2. 或者在服務(wù)器的環(huán)境變量里配置,進(jìn)一步提高安全性

打開/etc/profile文件
vim /etc/profile

文件末尾插入
export JASYPT_PASSWORD = G0CvDz7oJn6

編譯 
source /etc/profile

運(yùn)行 
java -jar -Djasypt.encryptor.password=${JASYPT_PASSWORD} xxx.jar

下面是一個(gè)我自己的具體實(shí)現(xiàn):https://github.com/eelve/jasypt,使用Jasypt對(duì)數(shù)據(jù)庫用信息加密后,可以成功連接上數(shù)據(jù)庫

官方地址:https://github.com/ulisesbocchio/jasypt-spring-boot

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/76060.html

相關(guān)文章

  • SpringBoot項(xiàng)目配置文件中密碼的加密

    摘要:配置文件密碼加密配置秘鑰加密算法從版本開始,默認(rèn)的加密解密算法已更改為以下版本默認(rèn)為上述不配置的話,其默認(rèn)的秘鑰也是以上的并不是很多人理解的鹽,這是加密密鑰。思考以上的步驟中,根據(jù)的用法,基本上完成了對(duì)配置文件中密碼的加密。作者:追夢(mèng)1819原文:https://www.cnblogs.com/yanfei1819/p/15565862.html版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈...

    frontoldman 評(píng)論0 收藏0
  • 基于SpringCloud的Microservices架構(gòu)實(shí)戰(zhàn)案例-配置文件屬性內(nèi)容加解密

    摘要:基于的架構(gòu)實(shí)戰(zhàn)案例配置文件屬性內(nèi)容加解密使用過配置文件的朋友都知道,資源文件中的內(nèi)容通常情況下是明文顯示,安全性就比較低一些。,官方給出的釋意是項(xiàng)目也采用此加密組件,結(jié)合使用。 基于SpringCloud的Microservices架構(gòu)實(shí)戰(zhàn)案例-配置文件屬性內(nèi)容加解密 使用過SpringBoot配置文件的朋友都知道,資源文件中的內(nèi)容通常情況下是明文顯示,安全性就比較低一些。打開appl...

    dantezhao 評(píng)論0 收藏0
  • application.properties數(shù)據(jù)庫敏感信息加密這么簡(jiǎn)單?

    摘要:前些天就有了一個(gè)滿足漏洞檢測(cè)的需求,想要把數(shù)據(jù)庫的明文敏感信息加密,其實(shí)也就是密碼加密,所以也就有了這篇文章,我的項(xiàng)目是結(jié)構(gòu),修改其實(shí)也挺簡(jiǎn)單,廢話少說,上代碼。所以您有什么更好的加密方法歡迎留言 寫在前面 俗話說:顧客是上帝,身為程序員的我有時(shí)會(huì)直接對(duì)接客戶方提出的需求,畢竟我處在提供服務(wù)的一方,所以我也會(huì)盡量的滿足臨時(shí)的要求。前些天就有了一個(gè)滿足漏洞檢測(cè)的需求,想要把數(shù)據(jù)庫的明文敏...

    Lycheeee 評(píng)論0 收藏0
  • SpringBoot 入門簡(jiǎn)介

    摘要:這里使用的是數(shù)據(jù)庫啟動(dòng)類上加上注解在啟動(dòng)類中添加對(duì)包掃描掃描多個(gè)包下的可以有以下幾種方法掃描會(huì)自動(dòng)加載相關(guān)配置,數(shù)據(jù)源就會(huì)自動(dòng)注入到中,會(huì)自動(dòng)注入到中,可以直接使用。有配置文件下的使用掃描多個(gè)包下的可以有以下幾種方法掃描 Spring-Boot 學(xué)習(xí)筆記 1 Spring-Boot 介紹 1.1 什么是Spring-Boot Spring-Boot是由Pivotal團(tuán)隊(duì)提供的全新框架...

    chuyao 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<