From 1339039a6fdb3794c57914192f1c3a4132b8e3df Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 06 十二月 2024 10:50:28 +0800
Subject: [PATCH] 修改注册逻辑
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/weChat/WxPKCS7Encoder.java | 63 +++++++++++++++++++++++++++++++
1 files changed, 63 insertions(+), 0 deletions(-)
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/weChat/WxPKCS7Encoder.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/weChat/WxPKCS7Encoder.java
new file mode 100644
index 0000000..3788ff8
--- /dev/null
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/weChat/WxPKCS7Encoder.java
@@ -0,0 +1,63 @@
+package com.ruoyi.account.util.weChat;
+
+import java.nio.charset.Charset;
+import java.util.Arrays;
+
+/**
+* 微信小程序加解密
+* @author pzb
+* @Date 2021/12/3 15:43
+*/
+public class WxPKCS7Encoder {
+ private static final Charset CHARSET = Charset.forName("utf-8");
+ private static final int BLOCK_SIZE = 32;
+
+ /**
+ * 获得对明文进行补位填充的字节.
+ *
+ * @param count
+ * 需要进行填充补位操作的明文字节个数
+ * @return 补齐用的字节数组
+ */
+ public static byte[] encode(int count) {
+ // 计算需要填充的位数
+ int amountToPad = BLOCK_SIZE - (count % BLOCK_SIZE);
+ if (amountToPad == 0) {
+ amountToPad = BLOCK_SIZE;
+ }
+ // 获得补位所用的字符
+ char padChr = chr(amountToPad);
+ String tmp = new String();
+ for (int index = 0; index < amountToPad; index++) {
+ tmp += padChr;
+ }
+ return tmp.getBytes(CHARSET);
+ }
+
+ /**
+ * 删除解密后明文的补位字符
+ *
+ * @param decrypted
+ * 解密后的明文
+ * @return 删除补位字符后的明文
+ */
+ public static byte[] decode(byte[] decrypted) {
+ int pad = decrypted[decrypted.length - 1];
+ if (pad < 1 || pad > 32) {
+ pad = 0;
+ }
+ return Arrays.copyOfRange(decrypted, 0, decrypted.length - pad);
+ }
+
+ /**
+ * 将数字转化成ASCII码对应的字符,用于对明文进行补码
+ *
+ * @param a
+ * 需要转化的数字
+ * @return 转化得到的字符
+ */
+ public static char chr(int a) {
+ byte target = (byte) (a & 0xFF);
+ return (char) target;
+ }
+}
--
Gitblit v1.7.1