车载码内容增加随机数
authorkaixiang.xia <kaixiang.xia@supwisdom.com>
Mon, 14 Sep 2020 01:56:26 +0000 (09:56 +0800)
committerkaixiang.xia <kaixiang.xia@supwisdom.com>
Mon, 14 Sep 2020 01:56:26 +0000 (09:56 +0800)
bus-qrcode/src/main/java/com/supwisdom/dlpay/busqrcode/BinUtil.java
bus-qrcode/src/main/java/com/supwisdom/dlpay/busqrcode/QrCode.java

index ebb4f05..b04ecd4 100644 (file)
@@ -58,10 +58,10 @@ public class BinUtil {
   }
 
   public static String encodeBase64(byte[] data) {
-    return Base64.encodeBase64String(data);
+    return new Base64(true).encodeAsString(data);
   }
 
   public static byte[] decodeBase64(String data) {
-    return Base64.decodeBase64(data);
+    return new Base64(true).decode(data);
   }
 }
index 93f6b60..fdbbf72 100644 (file)
@@ -209,11 +209,13 @@ public class QrCode {
       logger.info("=======================================================");
     }
 
+    final String randomStr = getRandomString(6); //随机数
     final String totp = genTOTPWithSeed(qrBuilder.seed, 8);
     final String encDataPlain = new StringJoin(DELIMITER)
         .add(qrBuilder.uid)
         .add(qrBuilder.scope)
-        .add(totp).toString();
+        .add(totp)
+        .add(randomStr).toString();
 
     final byte[] encData = aesEncryptCFB(qrBuilder.rootKey, encDataPlain.getBytes(), qrBuilder.iv);
     final String code = encodeBase64(encData);
@@ -247,7 +249,7 @@ public class QrCode {
       logger.info("Decode data : <" + encDataPlain + ">");
     }
     String[] fields = encDataPlain.split(DELIMITER);
-    if (fields.length < 3) {
+    if (fields.length < 4) {
       throw new RuntimeException("qrcode plain text format error!");
     }
     String uid = fields[0];