Commit 34ebcffd authored by 唐峰's avatar 唐峰

前端微信跳转页面的extData,部分编码转义问题处理

parent fb662dba
......@@ -38,8 +38,10 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
......@@ -177,6 +179,38 @@ public class WeChatController implements IBaseController {
return builder.toString();
}
public static void main(String[] args) {
try {
//String extData = "eyJjdXN0b21yZWRpcmVjdCI6Imh0dHBzOi8vcGFzc3BvcnQucS1ncC5jb20vbG9naW4%2FcmVnaXN0ZXJGcm9tPSUyMDEmY2hhbm5lbElkPTEmaXNXZWNoYXQ9dHJ1ZSZvcGVuSWQ9b1RRR29zeFVWVHRuRldpaWhmbk5FbnExQmxRYyIsInJlZGlyZWN0IjoicmVkaXJlY3QiLCJyZWdpc3RlckZyb20iOjEsInByb3RvY29sIjoiaHR0cHM6In0%3D";
String str = "eyJjdXN0b21yZWRpcmVjdCI6Imh0dHA6Ly9wYXNzcG9ydC54eXFiLmNvbS9sb2dpbj9rZXk9eHlxYiZ0YXJnZXQ9Y2FzaFRhcmdldDQmcmVkaXJlY3RVUkw9aHR0cCUzQSUyRiUyRmg1Lnh5cWIuY29tJTJGdXNlciUyRmhvbWUlM0ZyZWdpc3RlckZyb20lM0QxOTgmb3JpZ2luRnJvbT13eD9yZWdpc3RlckZyb209JTIwMSZjaGFubmVsSWQ9MSZpc1dlY2hhdD10cnVlJm9wZW5JZD1vVFFHb3M5a09ocjBpZTdLd0NtaWtqazluN1JVP3JlZ2lzdGVyRnJvbT0lMjAxJmNoYW5uZWxJZD0xJmlzV2VjaGF0PXRydWUmb3BlbklkPW9UUUdvczlrT2hyMGllN0t3Q21pa2prOW43UlU%2FcmVnaXN0ZXJGcm9tPSUyMDEmY2hhbm5lbElkPTEmaXNXZWNoYXQ9dHJ1ZSZvcGVuSWQ9b1RRR29zOWtPaHIwaWU3S3dDbWlrams5bjdSVSIsInJlZGlyZWN0IjoicmVkaXJlY3QiLCJyZWdpc3RlckZyb20iOjEsInByb3RvY29sIjoiaHR0cDoifQ%3D%3D";
System.out.println(str);
//String str = "eyJjdXN0b21yZWRpcmVjdCI6Imh0dHA6Ly9wYXNzcG9ydC54eXFiLmNvbS9sb2dpbj9rZXk9eHlxYiZ0YXJnZXQ9Y2FzaFRhcmdldDQmcmVkaXJlY3RVUkw9aHR0cCUzQSUyRiUyRmg1Lnh5cWIuY29tJTJGdXNlciUyRmhvbWUlM0ZyZWdpc3RlckZyb20lM0QxOTgmb3JpZ2luRnJvbT13eD9yZWdpc3RlckZyb209JTIwMSZjaGFubmVsSWQ9MSZpc1dlY2hhdD10cnVlJm9wZW5JZD1vVFFHb3M5a09ocjBpZTdLd0NtaWtqazluN1JVP3JlZ2lzdGVyRnJvbT0lMjAxJmNoYW5uZWxJZD0xJmlzV2VjaGF0PXRydWUmb3BlbklkPW9UUUdvczlrT2hyMGllN0t3Q21pa2prOW43UlU/cmVnaXN0ZXJGcm9tPSUyMDEmY2hhbm5lbElkPTEmaXNXZWNoYXQ9dHJ1ZSZvcGVuSWQ9b1RRR29zOWtPaHIwaWU3S3dDbWlrams5bjdSVSIsInJlZGlyZWN0IjoicmVkaXJlY3QiLCJyZWdpc3RlckZyb20iOjEsInByb3RvY29sIjoiaHR0cDoifQ=="; // %2F %3D
String str1 = "eyJjdXN0b21yZWRpcmVjdCI6Imh0dHA6Ly9wYXNzcG9ydC54eXFiLmNvbS9sb2dpbj9rZXk9eHlxYiZ0YXJnZXQ9Y2FzaFRhcmdldDQmcmVkaXJlY3RVUkw9aHR0cCUzQSUyRiUyRmg1Lnh5cWIuY29tJTJGdXNlciUyRmhvbWUlM0ZyZWdpc3RlckZyb20lM0QxOTgmb3JpZ2luRnJvbT13eD9yZWdpc3RlckZyb209JTIwMSZjaGFubmVsSWQ9MSZpc1dlY2hhdD10cnVlJm9wZW5JZD1vVFFHb3M5a09ocjBpZTdLd0NtaWtqazluN1JVP3JlZ2lzdGVyRnJvbT0lMjAxJmNoYW5uZWxJZD0xJmlzV2VjaGF0PXRydWUmb3BlbklkPW9UUUdvczlrT2hyMGllN0t3Q21pa2prOW43UlU/cmVnaXN0ZXJGcm9tPSUyMDEmY2hhbm5lbElkPTEmaXNXZWNoYXQ9dHJ1ZSZvcGVuSWQ9b1RRR29zOWtPaHIwaWU3S3dDbWlrams5bjdSVSIsInJlZGlyZWN0IjoicmVkaXJlY3QiLCJyZWdpc3RlckZyb20iOjEsInByb3RvY29sIjoiaHR0cDoifQ==";
// // %2F %3D
str = str.replace("%2F", "/");
str = str.replace("%3D", "=");
System.out.println(str);
System.out.println(str1);
System.out.println(str.equals(str1));
String extData = new String(Base64.decodeBase64(str), StandardCharsets.UTF_8);
//extData = new String(Base64.decodeBase64(extData));
System.out.println(extData);
byte[] decodedBytes = Base64.decodeBase64(str.getBytes(StandardCharsets.UTF_8));
String decodedString = new String(decodedBytes, StandardCharsets.UTF_8);
System.out.println(decodedString);
byte[] decode = java.util.Base64.getDecoder().decode(str);
String decodedString2 = new String(decode, StandardCharsets.UTF_8);
System.out.println(decodedString2);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 前端微信跳转页面,通过extdata
*
......@@ -199,6 +233,14 @@ public class WeChatController implements IBaseController {
}
try {
//有问题的编码
//String str = "eyJjdXN0b21yZWRpcmVjdCI6Imh0dHA6Ly9wYXNzcG9ydC54eXFiLmNvbS9sb2dpbj9rZXk9eHlxYiZ0YXJnZXQ9Y2FzaFRhcmdldDQmcmVkaXJlY3RVUkw9aHR0cCUzQSUyRiUyRmg1Lnh5cWIuY29tJTJGdXNlciUyRmhvbWUlM0ZyZWdpc3RlckZyb20lM0QxOTgmb3JpZ2luRnJvbT13eD9yZWdpc3RlckZyb209JTIwMSZjaGFubmVsSWQ9MSZpc1dlY2hhdD10cnVlJm9wZW5JZD1vVFFHb3M5a09ocjBpZTdLd0NtaWtqazluN1JVP3JlZ2lzdGVyRnJvbT0lMjAxJmNoYW5uZWxJZD0xJmlzV2VjaGF0PXRydWUmb3BlbklkPW9UUUdvczlrT2hyMGllN0t3Q21pa2prOW43UlU%2FcmVnaXN0ZXJGcm9tPSUyMDEmY2hhbm5lbElkPTEmaXNXZWNoYXQ9dHJ1ZSZvcGVuSWQ9b1RRR29zOWtPaHIwaWU3S3dDbWlrams5bjdSVSIsInJlZGlyZWN0IjoicmVkaXJlY3QiLCJyZWdpc3RlckZyb20iOjEsInByb3RvY29sIjoiaHR0cDoifQ%3D%3D";
//预期的编码
//String str1 = "eyJjdXN0b21yZWRpcmVjdCI6Imh0dHA6Ly9wYXNzcG9ydC54eXFiLmNvbS9sb2dpbj9rZXk9eHlxYiZ0YXJnZXQ9Y2FzaFRhcmdldDQmcmVkaXJlY3RVUkw9aHR0cCUzQSUyRiUyRmg1Lnh5cWIuY29tJTJGdXNlciUyRmhvbWUlM0ZyZWdpc3RlckZyb20lM0QxOTgmb3JpZ2luRnJvbT13eD9yZWdpc3RlckZyb209JTIwMSZjaGFubmVsSWQ9MSZpc1dlY2hhdD10cnVlJm9wZW5JZD1vVFFHb3M5a09ocjBpZTdLd0NtaWtqazluN1JVP3JlZ2lzdGVyRnJvbT0lMjAxJmNoYW5uZWxJZD0xJmlzV2VjaGF0PXRydWUmb3BlbklkPW9UUUdvczlrT2hyMGllN0t3Q21pa2prOW43UlU/cmVnaXN0ZXJGcm9tPSUyMDEmY2hhbm5lbElkPTEmaXNXZWNoYXQ9dHJ1ZSZvcGVuSWQ9b1RRR29zOWtPaHIwaWU3S3dDbWlrams5bjdSVSIsInJlZGlyZWN0IjoicmVkaXJlY3QiLCJyZWdpc3RlckZyb20iOjEsInByb3RvY29sIjoiaHR0cDoifQ==";
//替换编码问题
extData = extData.replace("%2F", "/").replace("%3D", "=");
extData = new String(Base64.decodeBase64(extData), "UTF-8");
} catch (Exception ex) {
extData = "";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment