广金强智教务系统模拟登录
生活随笔
收集整理的這篇文章主要介紹了
广金强智教务系统模拟登录
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 網站首頁
- 表單提交
- java實現加密
- 驗證結果
- 驗證碼問題
- 登錄請求
網站首頁
表單提交
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
總結
以上是生活随笔為你收集整理的广金强智教务系统模拟登录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++经典问题:狐狸找兔子
- 下一篇: 电厂人员定位怎么做?智慧电厂人员定位系统