package com.ilawedu.util;
public interface RunJsMethod {
//調用的方法必須和js中方法名一致
public String getkey(String cook);
}
package text;
import java.io.FileReader;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import com.ilawedu.util.RunJsMethod;
public class RunJs {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
try {
String path = "getkey.js";
System.out.println(path);
// FileReader的參數爲所要執行的js文件的路徑
engine.eval(new FileReader(RunJs.class.getClassLoader().getResource(path).getPath()));
if (engine instanceof Invocable) {
Invocable invocable = (Invocable) engine;
RunJsMethod executeMethod = invocable.getInterface(RunJsMethod.class);
System.out.println(executeMethod.getkey("67b79bfffca52d01ad183d9e7d267cfa0667804b"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
中國裁判文書網 getkey()解密後,js涉及太多,不想寫轉換方法,所以直接解密後調用,當然不解密的話需要在文件中添加三個加密的js 然後重寫getcookie方法就可以