Pig4Cloud之jasypt 配置文件加密

簡介

Jasypt是一個(gè)Java簡易加密庫谋逻,用于加密配置文件中的敏感信息庶灿,如數(shù)據(jù)庫密碼滴肿。jasypt庫與springboot集成决乎,在實(shí)際開發(fā)中非常方便队询。

引入Jasypt依賴

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

配置使用

將加密后的配置信息使用ENC函數(shù),添加到配置文件中构诚,應(yīng)用啟動(dòng)加載配置文件時(shí)蚌斩,會(huì)自動(dòng)解密。
Jasypt默認(rèn)使用的算法為PBEWithMD5AndDES范嘱,該算法需要一個(gè)加密密鑰送膳,可以在應(yīng)用啟動(dòng)時(shí)指定。也可以直接寫入配置文件彤侍,安全性稍差肠缨。

jasypt:
  encryptor:
    password: password

注意:這里指定加密密鑰為password

工具類

package com.keafmd.springdemo.utils;
 
import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;

public class JasyptUtils {
    /**
     * Jasypt生成加密結(jié)果
     *
     * @param password 配置文件中設(shè)定的加密密碼 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 配置文件中設(shè)定的加密密碼 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;
    }
 
    /**
     * @param password salt
     * @return
     */
    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(null);
        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
        config.setStringOutputType("base64");
        return config;
    }
 
    public static void main(String[] args) {
        // 加密
        // 鹽值替換成自己熟悉的口令,此口令為解密密鑰盏阶,需要妥善保管晒奕。
        // 鹽值也需要在第三步寫入配置文件
        System.out.println(encryptPwd("keafmd", "123456"));
    }
}

修改配置文件

把明文密碼替換為工具類生成的密文,并用ENC()包著

datasource:
  master:
    url: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
    username: root
    password: ENC(r7PD0+haO/ALC+txojmG/A==)
    driver-class-name: com.mysql.cj.jdbc.Driver

CSDN
騰訊云
掘金
博客園

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市脑慧,隨后出現(xiàn)的幾起案子魄眉,更是在濱河造成了極大的恐慌,老刑警劉巖闷袒,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坑律,死亡現(xiàn)場離奇詭異,居然都是意外死亡囊骤,警方通過查閱死者的電腦和手機(jī)晃择,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來也物,“玉大人宫屠,你說我怎么就攤上這事』牵” “怎么了浪蹂?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長告材。 經(jīng)常有香客問我坤次,道長,這世上最難降的妖魔是什么斥赋? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任缰猴,我火速辦了婚禮,結(jié)果婚禮上灿渴,老公的妹妹穿的比我還像新娘洛波。我一直安慰自己胰舆,他們只是感情好骚露,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著缚窿,像睡著了一般棘幸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上倦零,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天误续,我揣著相機(jī)與錄音,去河邊找鬼扫茅。 笑死蹋嵌,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的葫隙。 我是一名探鬼主播栽烂,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了腺办?” 一聲冷哼從身側(cè)響起焰手,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎怀喉,沒想到半個(gè)月后书妻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡躬拢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年躲履,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片聊闯。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡崇呵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出馅袁,到底是詐尸還是另有隱情域慷,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布汗销,位于F島的核電站犹褒,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏弛针。R本人自食惡果不足惜叠骑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望削茁。 院中可真熱鬧宙枷,春花似錦、人聲如沸茧跋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瘾杭。三九已至诅病,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間粥烁,已是汗流浹背贤笆。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留讨阻,地道東北人芥永。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像钝吮,于是被迫代替她去往敵國和親埋涧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子贴唇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容