From a7b783652325f6ae88a5b10ad389f226be6efbc3 Mon Sep 17 00:00:00 2001 From: 11353 <1135361399@qq.com> Date: Sat, 26 Mar 2022 18:38:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E8=A7=A3=E5=86=B3jasypt=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E6=8A=A5=E9=94=99=EF=BC=9A=201.=E9=85=8D=E7=BD=AE=E7=94=9F?= =?UTF-8?q?=E6=88=90=E7=9A=84=E5=AF=86=E7=A0=81=E6=9C=AA=E5=8E=BB=E9=99=A4?= =?UTF-8?q?=E5=8F=8C=E5=BC=95=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2.生成秘钥的配置不宜过多有些奇怪bug,jasypt是由热插拔形式代理原来springboot的mvc模块的org.springframework.core.env.MapPropertySource --- .../publicPackage/context/jasyptHandler.java | 32 ++--- .../utils/jasyptEncryptUtils.java | 114 +++++++++--------- .../main/resources/mybatisPlus/JasyptAll.yaml | 6 +- .../main/resources/mybatisPlus/JasyptDe.yaml | 6 +- 4 files changed, 78 insertions(+), 80 deletions(-) diff --git a/ruoyi-common/pinn-common-extend/src/main/java/com/pinn/publicPackage/context/jasyptHandler.java b/ruoyi-common/pinn-common-extend/src/main/java/com/pinn/publicPackage/context/jasyptHandler.java index d7ac4b23..2066ee51 100644 --- a/ruoyi-common/pinn-common-extend/src/main/java/com/pinn/publicPackage/context/jasyptHandler.java +++ b/ruoyi-common/pinn-common-extend/src/main/java/com/pinn/publicPackage/context/jasyptHandler.java @@ -14,20 +14,20 @@ import org.springframework.stereotype.Component; @Component public class jasyptHandler { - @Bean("jasyptStringEncryptor") - public StringEncryptor stringEncryptor() { - PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor(); - SimpleStringPBEConfig config = new SimpleStringPBEConfig(); - // 配置解析的密码 - config.setPassword("password"); - config.setAlgorithm(StandardPBEByteEncryptor.DEFAULT_ALGORITHM); - 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; - } +// @Bean("jasyptStringEncryptor") +// public StringEncryptor stringEncryptor() { +// PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor(); +// SimpleStringPBEConfig config = new SimpleStringPBEConfig(); +// // 配置解析的密码 +// config.setPassword("password"); +// config.setAlgorithm(StandardPBEByteEncryptor.DEFAULT_ALGORITHM); +// 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/ruoyi-common/pinn-common-extend/src/main/java/com/pinn/publicPackage/utils/jasyptEncryptUtils.java b/ruoyi-common/pinn-common-extend/src/main/java/com/pinn/publicPackage/utils/jasyptEncryptUtils.java index a630e015..764b30a3 100644 --- a/ruoyi-common/pinn-common-extend/src/main/java/com/pinn/publicPackage/utils/jasyptEncryptUtils.java +++ b/ruoyi-common/pinn-common-extend/src/main/java/com/pinn/publicPackage/utils/jasyptEncryptUtils.java @@ -5,6 +5,7 @@ import cn.hutool.core.map.MapUtil; import org.jasypt.encryption.StringEncryptor; import org.jasypt.encryption.pbe.PooledPBEStringEncryptor; import org.jasypt.encryption.pbe.StandardPBEByteEncryptor; +import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig; import java.io.File; @@ -23,50 +24,27 @@ public class jasyptEncryptUtils { final static String PREFIX = "PINN@["; final static String SUFFIX = "]"; - /** - * Jasypt生成加密结果 - * - * @param password 配置文件中设定的加密密码 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; - } + public static void main(String[] args) { + HashMap dataSource = MapUtil.newHashMap(); + dataSource.put("url","jdbc:mysql://175.178.38.240:9033/ry_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8"); + dataSource.put("username","nacos"); + dataSource.put("password","nacos2233"); - /** - * 解密 - * - * @param password 配置文件中设定的加密密码 jasypt.encryptor.password - * @param value 待解密密文 - * @return - */ - public static String decryptPwd(String password, String value) { - PooledPBEStringEncryptor encryptOr = new PooledPBEStringEncryptor(); - encryptOr.setConfig(cryptOr(password)); - String result = encryptOr.decrypt(value); - return result; - } + encryptionDataSource(dataSource); - /** - * @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; - } +// HashMap dataSource2 = MapUtil.newHashMap(); +// dataSource2.put("url","xvrY1Lb+8pSI993YLonk0/Zc5UJJyrCEvobsCWPKzjhFyN5+6TxFksonriogCXk3ZZKdLZ2RuGlNZ/F4ezeZtDH/gYdGpYmRmGPHJfCGDXZIHUQAdqB5xIGYxdym4UkMhvxY0zH+LfECaL4Xh4SsbYnoEe0+YlRav24x/1cNW7ZxZ+5kXLc8wRTkSTUCmEOqwBrwVII5lhNBbBva/ItLqYSFdfdyLX2g3BYBUz2iSlqH2aMH2sjUnHaaeEqpSoLq"); +// dataSource2.put("username","RZvKwBufVgR5YDlJ2ncYeWgaFIZ92BpKnepqv6EuUMFz1FY7rIyJEJyhR/NYYN7F"); +// dataSource2.put("password","ixlE6Xon2PkZGz2YWT30XodveKEhidgo3m2QWrzT9Wf9Jh5tTs/MKxEXZJPBSvij"); +// +// decryptDataSource(dataSource2); + +// StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor(); +// standardPBEStringEncryptor.setPassword("aa78fcbe21d77af8"); +// System.out.println(standardPBEStringEncryptor.decrypt("I41o92myZEH//IF94wRL63p1fYXvq+OaltRqSCk4OhzT3Ff5G4aj4Y8URNzarpiM")); + } + /** * 打印密钥和加密串 @@ -95,7 +73,6 @@ public class jasyptEncryptUtils { String url = encryptPwd(key,dataSource.get("url")); String username = encryptPwd(key,dataSource.get("username")); String password = encryptPwd(key,dataSource.get("password")); - //保存在目录下 FileWriter writer = new FileWriter(new File(FILE_PATCH_ALL), CHARSET_UTF8); writer.write("key: "+ key + LINE,false); @@ -104,22 +81,43 @@ public class jasyptEncryptUtils { writer.write("password: " + PREFIX +password + SUFFIX + LINE,true); } + /** + * Jasypt生成加密结果 + * + * @param password 配置文件中设定的加密密码 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; + } - public static void main(String[] args) { - HashMap dataSource = MapUtil.newHashMap(); - dataSource.put("url","jdbc:mysql://175.178.38.240:9033/ry_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8"); - dataSource.put("username","nacos"); - dataSource.put("password","nacos2233"); - - encryptionDataSource(dataSource); - - -/* HashMap dataSource2 = MapUtil.newHashMap(); - dataSource2.put("url","tdAxOXA3+S2kSy2Rv8sfFujgdl46zQy+Cl7xVnC9pDhZrVwtHnCdOeco2zkvyZnMDfIl/uiBig3DYmU4HqGbQgwBeYdyqamHu9jGKxVI9RzlKVM4XiDae630G5hSwNzhndchz33PBUZ0IMdvB7pDcDs/Ug/5h8O47qQ0TQrTAOarKOFkZCoA7wNqaDhYJmZzTCAtvPadRx8qdNRKHsbswFtjqmCO+QrW"); - dataSource2.put("username","ghFv/J1tegsx6a/kVdzwVQ=="); - dataSource2.put("password","VNMRcA303/pklpGem3JQYP8T+GwZXwnC"); - - decryptDataSource(dataSource2);*/ - } + /** + * 解密 + * + * @param password 配置文件中设定的加密密码 jasypt.encryptor.password + * @param value 待解密密文 + * @return + */ + public static String decryptPwd(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("PBEWithMD5AndDES"); + config.setPoolSize("1"); + return config; + } } \ No newline at end of file diff --git a/ruoyi-common/pinn-common-extend/src/main/resources/mybatisPlus/JasyptAll.yaml b/ruoyi-common/pinn-common-extend/src/main/resources/mybatisPlus/JasyptAll.yaml index b2a22bfb..1eb7f74e 100644 --- a/ruoyi-common/pinn-common-extend/src/main/resources/mybatisPlus/JasyptAll.yaml +++ b/ruoyi-common/pinn-common-extend/src/main/resources/mybatisPlus/JasyptAll.yaml @@ -1,4 +1,4 @@ key: aa78fcbe21d77af8 -url: PINN@[RDvIMG8MFQAINuVwgI59BimaqgkEOrcnY0vj8kYmZMmlRWwl+9rn7weZDNwon807LaYXZF+hme4/+Ye4d9LwHUS2IzOvz/nOqXoeqmPIMYNq2Cdt4AAIvtENj+Fnp4/XccSKfhAlA8pRarc/lk8F7l62ul5VsxKi8lUQatXDB1v1OCsNAzDowj2l7T0o/TzNrIHWl0b9yYcZZVGDnyYrkA==] -username: PINN@[9LFA4aI0xDSxwlsyyoJf1w==] -password: PINN@[AG6wLP/NWZx1UpBDYIHAcpQ62kjD7mfa] +url: PINN@[b43OeNppIVyLnbWEybBFR7ilgcIOkQz5Mkb2tWtOuugrQoTxjpf3hozwU8LRSpboCAOf4WSAB9eknmbS15qX42/e6g1XmmJCsSAwx3TswOjX9x6BgjcDiWrUcYx4ZiNS9wO79ieCkLdeWRW1AZ6msuFV0JGRQNMpsLaJjwra2BZ4Hldq88EDjyZntBvT2s58EXM/bjMKIQhynkUibEbAhw==] +username: PINN@[WEciwJ1eT6ZjAMncoppuow==] +password: PINN@[YZXfQ+pMtdFaMCxbKy5ey5BfxIG2RQnZ] diff --git a/ruoyi-common/pinn-common-extend/src/main/resources/mybatisPlus/JasyptDe.yaml b/ruoyi-common/pinn-common-extend/src/main/resources/mybatisPlus/JasyptDe.yaml index 99122f83..007273e3 100644 --- a/ruoyi-common/pinn-common-extend/src/main/resources/mybatisPlus/JasyptDe.yaml +++ b/ruoyi-common/pinn-common-extend/src/main/resources/mybatisPlus/JasyptDe.yaml @@ -1,4 +1,4 @@ key: aa78fcbe21d77af8 -url: 'jdbc:mysql://175.178.38.240:9033/ry_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8' -username: 'nacos' -password: 'nacos2233' +url: jdbc:mysql://175.178.38.240:9033/ry_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 +username: nacos +password: nacos2233