客户端传来的url utf-8激活码。
DqYDMgbwMkOSCJ3dlZG5gS7T%2B5TZjez33VLEvaIWQp9sqJKmeSIMnuqB9DwIYlfo7tTA%2BEx3wf%2BK%0D%0ANqDCnbm6sg%3D%3D
接收变为:
DqYDMgbwMkOSCJ3dlZG5gS7T+5TZjez33VLEvaIWQp9sqJKmeSIMnuqB9DwIYlfo7tTA+Ex3wf+KNqDCnbm6sg== //其实就是uf-8格式,可不用编码和转码
%0D%0A \r\n
%2B +号
产生激活码:
原码:str ="abc@163.com|hdy|7c4a8d09ca3762af61e59520943dc26494f8941b";
Desed3.getKey(key);
String enc = Desed3.getEncString(str); 加密str后
DqYDMgbwMkOSCJ3dlZG5gS7T+5TZjez33VLEvaIWQp9sqJKmeSIMnuqB9DwIYlfo7tTA+Ex3wf+K //url中不能含有+等特殊字符
URLEncoder.encode(enc, "utf-8"); // 转换成utf-8
DqYDMgbwMkOSCJ3dlZG5gS7T%2B5TZjez33VLEvaIWQp9sqJKmeSIMnuqB9DwIYlfo7tTA%2BEx3wf%2BK%0D%0ANqDCnbm6sg%3D%3D
接收:
String code = request.getParameter("code");
System.out.println("code:" + code); //
DqYDMgbwMkOSCJ3dlZG5gS7T+5TZjez33VLEvaIWQp9sqJKmeSIMnuqB9DwIYlfo7tTA+Ex3wf+KNqDCnbm6sg==
加入编码utf-8:
String s1 = URLEncoder.encode(receiveCode, "utf-8");
System.out.println("dddd:"+s1);
dddd:DqYDMgbwMkOSCJ3dlZG5gS7T%2B5TZjez33VLEvaIWQp9sqJKmeSIMnuqB9DwIYlfo7tTA%2BEx3wf%2BKNqDCnbm6sg%3D%3D
public static void main(String[] args) throws UnsupportedEncodingException {
String str = "abc@163.com|hdy|7c4a8d09ca3762af61e59520943dc26494f8941b";
getActivationUrl2(str);
//String code = "DqYDMgbwMkOSCJ3dlZG5gS7T%2B5TZjez33VLEvaIWQp9sqJKmeSIMnuqB9DwIYlfo7tTA%2BEx3wf%2BK%0D%0ANqDCnbm6sg%3D%3D";
String receiveCode = "DqYDMgbwMkOSCJ3dlZG5gS7T+5TZjez33VLEvaIWQp9sqJKmeSIMnuqB9DwIYlfo7tTA+Ex3wf+KNqDCnbm6sg==";
String s1 = URLEncoder.encode(receiveCode, "utf-8"); //将接收含有+和=号的字符串重新编码成utf-8
System.out.println("dddd:"+s1);
System.out.println("ss:"+getDesUserName(s1));
}
执行结果:
enc str:DqYDMgbwMkOSCJ3dlZG5gS7T+5TZjez33VLEvaIWQp9sqJKmeSIMnuqB9DwIYlfo7tTA+Ex3wf+K
NqDCnbm6sg==
dddd:DqYDMgbwMkOSCJ3dlZG5gS7T%2B5TZjez33VLEvaIWQp9sqJKmeSIMnuqB9DwIYlfo7tTA%2BEx3wf%2BKNqDCnbm6sg%3D%3D
des:DqYDMgbwMkOSCJ3dlZG5gS7T+5TZjez33VLEvaIWQp9sqJKmeSIMnuqB9DwIYlfo7tTA+Ex3wf+KNqDCnbm6sg==//解码utf-8
desStr:abc@163.com|hdy|7c4a8d09ca3762af61e59520943dc26494f8941b
ss:hdy
//揭密方法
String des = URLDecoder.decode(code, "utf-8");
desStr = Desed3.getDesString(des);
System.out.println("des:"+des);
System.out.println("desStr:"+desStr);