From 517320e71400a645c9e0d5a16434b0bf2025014b Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Fri, 15 Dec 2023 16:06:21 +0800 Subject: [PATCH] =?UTF-8?q?uft-8=20=E6=94=B9=E4=B8=BA=20StandardCharsets.U?= =?UTF-8?q?TF=5F8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/test/java/SpringBootTestController.java | 2 +- .../jsowell/common/util/wxplatform/PKCS7Encoder.java | 3 ++- .../common/util/wxplatform/WXBizMsgCrypt.java | 12 ++++++------ .../common/util/wxplatform/WXXmlToMapUtil.java | 3 ++- .../config/FastJson2JsonRedisSerializer.java | 3 ++- .../main/java/com/jsowell/wxpay/utils/AesUtil.java | 3 ++- .../java/com/jsowell/wxpay/utils/WechatPayUtils.java | 11 ++++++----- .../com/jsowell/thirdparty/amap/util/AMapUtils.java | 5 +++-- .../lianlian/service/impl/LianLianServiceImpl.java | 6 +++--- .../thirdparty/lianlian/util/GBSignUtils.java | 5 +++-- .../thirdparty/lianlian/util/LianLianUtils.java | 5 +++-- 11 files changed, 33 insertions(+), 25 deletions(-) diff --git a/jsowell-admin/src/test/java/SpringBootTestController.java b/jsowell-admin/src/test/java/SpringBootTestController.java index b69f58384..fec4527c7 100644 --- a/jsowell-admin/src/test/java/SpringBootTestController.java +++ b/jsowell-admin/src/test/java/SpringBootTestController.java @@ -2175,7 +2175,7 @@ public class SpringBootTestController { // 解密data byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(data1), operatorSecret.getBytes(), operatorSecret.getBytes()); - String dataStr = new String(plainText, "UTF-8"); + String dataStr = new String(plainText, StandardCharsets.UTF_8); Map resultMap = (Map) JSON.parse(dataStr); } diff --git a/jsowell-common/src/main/java/com/jsowell/common/util/wxplatform/PKCS7Encoder.java b/jsowell-common/src/main/java/com/jsowell/common/util/wxplatform/PKCS7Encoder.java index ba0ba96dc..7cabe031e 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/util/wxplatform/PKCS7Encoder.java +++ b/jsowell-common/src/main/java/com/jsowell/common/util/wxplatform/PKCS7Encoder.java @@ -1,6 +1,7 @@ package com.jsowell.common.util.wxplatform; import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.util.Arrays; /** @@ -10,7 +11,7 @@ import java.util.Arrays; * @Date 2023/7/27 16:18 */ public class PKCS7Encoder { - static Charset CHARSET = Charset.forName("utf-8"); + static Charset CHARSET = StandardCharsets.UTF_8; static int BLOCK_SIZE = 32; /** diff --git a/jsowell-common/src/main/java/com/jsowell/common/util/wxplatform/WXBizMsgCrypt.java b/jsowell-common/src/main/java/com/jsowell/common/util/wxplatform/WXBizMsgCrypt.java index 5134b3c65..f01088a9a 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/util/wxplatform/WXBizMsgCrypt.java +++ b/jsowell-common/src/main/java/com/jsowell/common/util/wxplatform/WXBizMsgCrypt.java @@ -6,16 +6,16 @@ import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; -import java.io.StringReader; -import java.nio.charset.Charset; -import java.security.MessageDigest; -import java.util.Arrays; - import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; +import java.io.StringReader; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.util.Arrays; /** * 提供接收和推送给公众平台消息的加解密接口(UTF8编码的字符串). @@ -32,7 +32,7 @@ import javax.xml.parsers.DocumentBuilderFactory; * */ public class WXBizMsgCrypt { - static Charset CHARSET = Charset.forName("utf-8"); + static Charset CHARSET = StandardCharsets.UTF_8; Base64 base64 = new Base64(); byte[] aesKey; String token; diff --git a/jsowell-common/src/main/java/com/jsowell/common/util/wxplatform/WXXmlToMapUtil.java b/jsowell-common/src/main/java/com/jsowell/common/util/wxplatform/WXXmlToMapUtil.java index 1e1d335e5..6cc2c3916 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/util/wxplatform/WXXmlToMapUtil.java +++ b/jsowell-common/src/main/java/com/jsowell/common/util/wxplatform/WXXmlToMapUtil.java @@ -23,6 +23,7 @@ import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.StringReader; import java.io.StringWriter; +import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -47,7 +48,7 @@ public class WXXmlToMapUtil { Map data = new HashMap<>(); DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); - InputStream stream = new ByteArrayInputStream(xml.getBytes("UTF-8")); + InputStream stream = new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8)); org.w3c.dom.Document doc = documentBuilder.parse(stream); doc.getDocumentElement().normalize(); NodeList nodeList = doc.getDocumentElement().getChildNodes(); diff --git a/jsowell-framework/src/main/java/com/jsowell/framework/config/FastJson2JsonRedisSerializer.java b/jsowell-framework/src/main/java/com/jsowell/framework/config/FastJson2JsonRedisSerializer.java index 83425e3e9..283770a76 100644 --- a/jsowell-framework/src/main/java/com/jsowell/framework/config/FastJson2JsonRedisSerializer.java +++ b/jsowell-framework/src/main/java/com/jsowell/framework/config/FastJson2JsonRedisSerializer.java @@ -7,6 +7,7 @@ import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.SerializationException; import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; /** * Redis使用FastJson序列化 @@ -14,7 +15,7 @@ import java.nio.charset.Charset; * @author jsowell */ public class FastJson2JsonRedisSerializer implements RedisSerializer { - public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); + public static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8; private Class clazz; diff --git a/jsowell-pile/src/main/java/com/jsowell/wxpay/utils/AesUtil.java b/jsowell-pile/src/main/java/com/jsowell/wxpay/utils/AesUtil.java index b5f041f8b..2cac5d209 100644 --- a/jsowell-pile/src/main/java/com/jsowell/wxpay/utils/AesUtil.java +++ b/jsowell-pile/src/main/java/com/jsowell/wxpay/utils/AesUtil.java @@ -5,6 +5,7 @@ import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.GCMParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.security.GeneralSecurityException; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; @@ -35,7 +36,7 @@ public class AesUtil { cipher.init(Cipher.DECRYPT_MODE, key, spec); cipher.updateAAD(associatedData); - return new String(cipher.doFinal(Base64.getDecoder().decode(ciphertext)), "utf-8"); + return new String(cipher.doFinal(Base64.getDecoder().decode(ciphertext)), StandardCharsets.UTF_8); } catch (NoSuchAlgorithmException | NoSuchPaddingException e) { throw new IllegalStateException(e); } catch (InvalidKeyException | InvalidAlgorithmParameterException e) { diff --git a/jsowell-pile/src/main/java/com/jsowell/wxpay/utils/WechatPayUtils.java b/jsowell-pile/src/main/java/com/jsowell/wxpay/utils/WechatPayUtils.java index d6fb71c6e..44fcba4d6 100644 --- a/jsowell-pile/src/main/java/com/jsowell/wxpay/utils/WechatPayUtils.java +++ b/jsowell-pile/src/main/java/com/jsowell/wxpay/utils/WechatPayUtils.java @@ -6,6 +6,7 @@ import com.jsowell.wxpay.common.WeChatPayParameter; import java.io.ByteArrayInputStream; import java.io.IOException; import java.net.URL; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.security.InvalidKeyException; @@ -36,7 +37,7 @@ public class WechatPayUtils { */ public static PrivateKey getPrivateKey(String filename) throws IOException { // System.out.println("filename:" + filename); - String content = new String(Files.readAllBytes(Paths.get(filename)), "utf-8"); + String content = new String(Files.readAllBytes(Paths.get(filename)), StandardCharsets.UTF_8); try { String privateKey = content.replace("-----BEGIN PRIVATE KEY-----", "") .replace("-----END PRIVATE KEY-----", "") @@ -64,7 +65,7 @@ public class WechatPayUtils { String nonceStr = getNonceStr(); long timestamp = System.currentTimeMillis() / 1000; String message = buildMessage(method, url, timestamp, nonceStr, body); - String signature = sign(message.getBytes("utf-8")); + String signature = sign(message.getBytes(StandardCharsets.UTF_8)); return "WECHATPAY2-SHA256-RSA2048 " + "mchid=\"" + WeChatPayParameter.mchId + "\"," + "nonce_str=\"" + nonceStr + "\"," @@ -86,7 +87,7 @@ public class WechatPayUtils { String nonceStr = getNonceStr(); long timestamp = System.currentTimeMillis() / 1000; String message = buildMessage(method, url, timestamp, nonceStr, body); - String signature = sign(message.getBytes("utf-8")); + String signature = sign(message.getBytes(StandardCharsets.UTF_8)); Map map = new HashMap<>(); map.put("timeStamp", String.valueOf(timestamp)); @@ -170,7 +171,7 @@ public class WechatPayUtils { //证书内容转成证书对象 CertificateFactory cf = CertificateFactory.getInstance("X509"); X509Certificate x509Cert = (X509Certificate) cf.generateCertificate( - new ByteArrayInputStream(certStr.getBytes("utf-8")) + new ByteArrayInputStream(certStr.getBytes(StandardCharsets.UTF_8)) ); String serial_no = data.get(i).get("serial_no").toString().replaceAll("\"", ""); certificateMap.put(serial_no, x509Cert); @@ -222,7 +223,7 @@ public class WechatPayUtils { //签名,使用字段appId、timeStamp、nonceStr、package计算得出的签名值 String message = buildMessageTwo(appId, timestamp, nonceStr, packagestr); //获取对应的签名 - String signature = sign(message.getBytes("utf-8")); + String signature = sign(message.getBytes(StandardCharsets.UTF_8)); // 组装返回 HashMap map = new HashMap<>(); map.put("timeStamp", String.valueOf(timestamp)); diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/amap/util/AMapUtils.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/amap/util/AMapUtils.java index faf413328..003819c5e 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/amap/util/AMapUtils.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/amap/util/AMapUtils.java @@ -14,6 +14,7 @@ import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; import java.io.*; +import java.nio.charset.StandardCharsets; import java.security.*; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; @@ -180,7 +181,7 @@ public class AMapUtils { Signature signature = Signature.getInstance("SHA256WithRSA"); signature.initSign(priKey); - signature.update(signContent.getBytes("UTF-8")); + signature.update(signContent.getBytes(StandardCharsets.UTF_8)); byte[] signed = signature.sign(); return new String(Base64.getEncoder().encode(signed)); } @@ -232,7 +233,7 @@ public class AMapUtils { PublicKey pubKey = keyFactory.generatePublic(new X509EncodedKeySpec(encodedKey)); Signature signature = Signature.getInstance("SHA256WithRSA"); signature.initVerify(pubKey); - signature.update(content.getBytes("UTF-8")); + signature.update(content.getBytes(StandardCharsets.UTF_8)); return signature.verify(Base64.getDecoder().decode(sign.getBytes())); } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java index 002db338b..f3cb6c6dc 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java @@ -862,7 +862,7 @@ public class LianLianServiceImpl implements LianLianService { String dataJson = JSONUtil.toJsonStr(data); // 加密 - byte[] encryptText = Cryptos.aesEncrypt(dataJson.getBytes("UTF-8"), + byte[] encryptText = Cryptos.aesEncrypt(dataJson.getBytes(StandardCharsets.UTF_8), dataSecret.getBytes(), dataSecretIv.getBytes()); String strData = Encodes.encodeBase64(encryptText); @@ -886,7 +886,7 @@ public class LianLianServiceImpl implements LianLianService { // 解密data byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64((String) result.getData()), dataSecret.getBytes(), dataSecretIv.getBytes()); - String dataStr = new String(plainText, "UTF-8"); + String dataStr = new String(plainText, StandardCharsets.UTF_8); Map resultMap = (Map) JSON.parse(dataStr); token = resultMap.get("AccessToken"); // logger.info("token: {}", token); @@ -1616,7 +1616,7 @@ public class LianLianServiceImpl implements LianLianService { String dataString = checkResultMap.get("Data"); // 解密data byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIv.getBytes()); - String dataStr = new String(plainText, "UTF-8"); + String dataStr = new String(plainText, StandardCharsets.UTF_8); Map resMap = (Map) JSON.parse(dataStr); String secret = resMap.get("OperatorSecret"); diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/util/GBSignUtils.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/util/GBSignUtils.java index 100bfa86d..e4d9bd1ce 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/util/GBSignUtils.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/util/GBSignUtils.java @@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory; import javax.crypto.Mac; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; +import java.nio.charset.StandardCharsets; import java.util.Map; public class GBSignUtils { @@ -42,7 +43,7 @@ public class GBSignUtils { * @throws Exception */ public static byte[] HmacMD5Encrypt(String encryptText, String encryptKey) throws Exception { - byte[] data = encryptKey.getBytes("UTF-8"); + byte[] data = encryptKey.getBytes(StandardCharsets.UTF_8); // 根据给定的字节数组构造一个密钥,第二参数指定一个密钥算法的名称 SecretKey secretKey = new SecretKeySpec(data, "HmacMD5"); // 生成一个指定 Mac 算法 的 Mac 对象 @@ -50,7 +51,7 @@ public class GBSignUtils { // 用给定密钥初始化 Mac 对象 mac.init(secretKey); - byte[] text = encryptText.getBytes("UTF-8"); + byte[] text = encryptText.getBytes(StandardCharsets.UTF_8); // 完成 Mac 操作 return mac.doFinal(text); } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/util/LianLianUtils.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/util/LianLianUtils.java index cb48f539c..96b2f5fb5 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/util/LianLianUtils.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/util/LianLianUtils.java @@ -7,6 +7,7 @@ import com.jsowell.common.util.DateUtils; import javax.crypto.Mac; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; +import java.nio.charset.StandardCharsets; import java.util.Locale; /** @@ -28,10 +29,10 @@ public class LianLianUtils { * @throws Exception */ public static String encryptionHMAC(String source) throws Exception { - SecretKey secretKey = new SecretKeySpec(MAC_KEY.getBytes("UTF-8"), ALGORITHM_MAC); + SecretKey secretKey = new SecretKeySpec(MAC_KEY.getBytes(StandardCharsets.UTF_8), ALGORITHM_MAC); Mac mac = Mac.getInstance(ALGORITHM_MAC); mac.init(secretKey); - mac.update(source.getBytes("UTF-8")); + mac.update(source.getBytes(StandardCharsets.UTF_8)); return BytesUtil.binary(mac.doFinal(), 16).toUpperCase(Locale.ROOT); }