网站首页
表单提交
f12查看提交发现有encodeInp()加密字符串
java实现加密
conwork.js
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function encodeInp(input) {
var output = "";
var chr1, chr2, chr3 = "";
var enc1, enc2, enc3, enc4 = "";
var i = 0;
do {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64
} else if (isNaN(chr3)) {
enc4 = 64
}
output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4);
chr1 = chr2 = chr3 = "";
enc1 = enc2 = enc3 = enc4 = ""
} while (i < input.length);
return output
}
定义接口Methods
public interface Methods {
public String encodeInp(String input);
}
编写playJs方法
public static String playJs(String str) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
try {
engine.eval(new FileReader("conwork.js"));
if (engine instanceof Invocable) {
Invocable invocable = (Invocable) engine;
Methods executeMethod = invocable.getInterface(Methods.class);
return executeMethod.encodeInp(str);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
验证结果
验证码问题
拿着访问网页时cookie去请求验证码网址,用Jsoup去解析转换成字节数组,然后直接调用百度文字识或者去找找其他识别算法识别
public static byte[] getYzmCode(Map<String, String> cookie) throws Exception {
Connection.Response execute = Jsoup.connect("http://jwxt.gduf.edu.cn/jsxsd/verifycode.servlet?t=" + Math.random())
.ignoreContentType(true).cookies(cookie).execute();
return execute.bodyAsBytes();
}
登录请求
登录接口(POST):http://jwxt.gduf.edu.cn/jsxsd/xk/LoginToXk
携带:"encoded"
和"RANDOMCODE"
和cookie
cookie就是请求验证码的那个cookie