From c4e5b7a830832d156e41b28c9fce9852b72b2055 Mon Sep 17 00:00:00 2001 From: fuqingji <51312040@qq.com> Date: Fri, 23 Sep 2022 15:11:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Ejasypt.jar=20=E5=AF=B9?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E4=B8=AD=E7=9A=84=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7=E5=AF=86=E7=A0=81=E8=BF=9B=E8=A1=8C=E5=8A=A0=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + uboot-common/pom.xml | 6 ++++ .../starter/JasyptStarterConfiguration.java | 32 +++++++++++++++++ .../cloud/jasypt/starter/util/JasyptUtil.java | 35 +++++++++++++++++++ 4 files changed, 74 insertions(+) create mode 100644 uboot-common/src/main/java/com/chinaunicom/mall/ebtp/cloud/jasypt/starter/JasyptStarterConfiguration.java create mode 100644 uboot-common/src/main/java/com/chinaunicom/mall/ebtp/cloud/jasypt/starter/util/JasyptUtil.java diff --git a/README.md b/README.md index 411bf0f..39fc301 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ ###### v2.2.0 - update-20220727-fuqj:修改获取人员信息逻辑,把从山分查询出来的人员通过extend服务扩展覆盖后的信息,缓存到本地redis中。![img.png](resource/user_auth_process.png) - update-20220907-fuqj:修改通过userinfo服务查询,同时添加mongodb使用的businessModule +- add-20220923-fuqj: 新增jasypt.jar 对配置文件中的账号密码进行加密 `JasyptStarterConfiguration` diff --git a/uboot-common/pom.xml b/uboot-common/pom.xml index 9ae6e42..9dd41f7 100644 --- a/uboot-common/pom.xml +++ b/uboot-common/pom.xml @@ -180,6 +180,12 @@ + + + com.github.ulisesbocchio + jasypt-spring-boot-starter + 3.0.2 + diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/cloud/jasypt/starter/JasyptStarterConfiguration.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/cloud/jasypt/starter/JasyptStarterConfiguration.java new file mode 100644 index 0000000..4175c16 --- /dev/null +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/cloud/jasypt/starter/JasyptStarterConfiguration.java @@ -0,0 +1,32 @@ +package com.chinaunicom.mall.ebtp.cloud.jasypt.starter; + + +import org.jasypt.encryption.StringEncryptor; +import org.jasypt.encryption.pbe.PooledPBEStringEncryptor; +import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class JasyptStarterConfiguration { + + @Bean( name = "stringEncryptor" ) + public StringEncryptor stringEncryptor() { + + PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor(); + + SimpleStringPBEConfig config = new SimpleStringPBEConfig(); + config.setPassword("uniom-ebtp"); + config.setAlgorithm("PBEWITHHMACSHA512ANDAES_256"); + config.setKeyObtentionIterations("1000"); + config.setPoolSize("1"); + config.setProviderName("SunJCE"); + config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator"); + config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator"); + config.setStringOutputType("base64"); + encryptor.setConfig(config); + + return encryptor; + } + +} diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/cloud/jasypt/starter/util/JasyptUtil.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/cloud/jasypt/starter/util/JasyptUtil.java new file mode 100644 index 0000000..cd290e9 --- /dev/null +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/cloud/jasypt/starter/util/JasyptUtil.java @@ -0,0 +1,35 @@ +package com.chinaunicom.mall.ebtp.cloud.jasypt.starter.util; + +import org.jasypt.encryption.pbe.PooledPBEStringEncryptor; +import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig; + +public class JasyptUtil { + + + public static String encryptStr(String encryptStr, String password) { + PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor(); + + SimpleStringPBEConfig config = new SimpleStringPBEConfig(); + config.setPassword(password); + config.setAlgorithm("PBEWITHHMACSHA512ANDAES_256"); + config.setKeyObtentionIterations("1000"); + config.setPoolSize("1"); + config.setProviderName("SunJCE"); + config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator"); + config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator"); + config.setStringOutputType("base64"); + encryptor.setConfig(config); + + String enPw = encryptor.encrypt(encryptStr); + System.out.println("加密后:" + enPw); + String decrypt = encryptor.decrypt(enPw); + System.out.println("解密的字符串:" + decrypt); + return enPw; + + } + + public static void main(String[] args) { + JasyptUtil.encryptStr("Eshop@2021","uniom-ebtp"); + } + +}