學(xué)習(xí)視頻:【編程不良人】2021年SpringBoot最新最全教程
第十九章、Jasypt加密
Jasypt全稱是Java Simplified Encryption,是一個(gè)開(kāi)源項(xiàng)目。
Jasypt與Spring Boot集成,以便在應(yīng)用程序的屬性文件中加密敏感信息,然后在應(yīng)用程序運(yùn)行時(shí)解密這些信息。
可以使用jasypt-spring-boot-starter
這個(gè)依賴項(xiàng)。從而實(shí)現(xiàn)屬性源的加密和解密功能。另外,還可以使用@EnableEncryptableProperties
注解來(lái)啟用整個(gè)Spring環(huán)境中的可加密屬性。
除了使用starter之外,還可以通過(guò)添加@EncryptablePropertySource
注解來(lái)聲明單獨(dú)的可加密屬性源,或者使用自定義的ConfigurableEnvironment
類來(lái)實(shí)現(xiàn)加密屬性的啟用。
-
加密原理
-
引入依賴
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.5</version> </dependency>
-
配置
jasypt: encryptor: algorithm: PBEWITHHMACSHA512ANDAES_256 #默認(rèn)指定加密算法 password: 123456 # 指定密鑰:-Djasypt.encryptorpassword=123456
-
加密
@Autowired private StringEncryptor stringEncryptor; @Test public void testSecret() { //加密 String secret = stringEncryptor.encrypt("root"); System.out.println("secret = "+ secret); }
得到”root”加密后的字符串
-
解密
@Test public void testSecret() { // 解密 輸入獲取的加密字符串進(jìn)行解密 String decrypt = stringEncryptor.decrypt("AFag9CUGUtX3ztEMirgaiKzwSy4d8jRDdrXwci+pCLfep2E6Hcl/vDz+6+YB46dm"); System.out.println("decrypt = " + decrypt); }
-
解密原理
配置文件中的
jasypt.encryptor.password
是密鑰,密鑰可以隨便設(shè)置,解密方法就是依靠密鑰才能實(shí)現(xiàn)的,否則解密失敗,密鑰一般不放在配置文件中,而是通過(guò)vm傳參加載**-Djasypt.encryptor.password=
zxckqwe**jar包 加載密鑰的方式:將參數(shù)放在-jar的后面
-
數(shù)據(jù)庫(kù)連接,主機(jī)名、用戶名和密碼填:ENC(加密后的密碼)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-760662.html
mysql: host: ENC(d8CPj1+lGSxYqPv/sAbL9Sn8YxVEqNcEx8aRMKf3G3v76IGlbfI9+lCESQ7QLDtN) datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://${mysql.host}:3306/ems?characterEncoding=UTF-8 username: ENC(DZKipHxtCFm3zsNq0rcPv0BhpQEPv/xlz+VD8GMOekznEDokVIvxtT2aAIqNoiNl) password: ENC(e453fFe9wzx4+WA4Lasg30rpS70iqyW68j+y8M6cpMIePiWfS5wBanzkk+C3GbXQ)
下一章:Spring Boot學(xué)習(xí)隨筆- 集成MyBatis-Plus,第一個(gè)MP程序(環(huán)境搭建、@TableName、@TableId、@TableField示例)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-760662.html
到了這里,關(guān)于Spring Boot學(xué)習(xí)隨筆- Jasypt加密數(shù)據(jù)庫(kù)用戶名和密碼以及解密的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!