python使用pyexejs库运行js代码
前言:有些网站的账号密码不是通过明文传输,而使用js加密后传输。可以先将字典用js加密算法加密,再通过bp爆破,。
一、pyexejs安装
pip install pyexejs
二、使用方法
1:t=exejs.compile(js代码)返回js对象t
2:t.call(函数名,[参数1,参数2])调用函数并返回值。参数可选
3:t.eval(参数名)运行js代码,返回参数值。
import execjs
js_code = '''
function x(a, b)
{
return a+b;
}
var c = "hello";
var d=1,e=2;
var f=d+e;
'''
t = execjs.compile(js_code);#通过compile命令转成一个js对象
hanshu = t.call('x', 3, 4); # 调用函数返回值,call(函数名,[参数1,参数2])
print(hanshu);
var_c = t.eval('c');#返回参数值,eval()
print(var_c);
var_f = t.eval('f');
print(var_f);
运行结果:
7
hello
3
三、从文件中读取运行
有时候运行的js代码太多,因此从文件中读取可提高代码可读性。
import execjs
with open('js.js','r') as f:
js_code = f.read();
print(js_code);
t = execjs.compile(js_code);#通过compile命令转成一个js对象
hanshu = t.call('x', 3, 4); # 调用函数返回值,call(函数名,[参数1,参数2])
print(hanshu);
var_c = t.eval('c');#返回参数值,eval()
print(var_c);
var_f = t.eval('f');
print(var_f);
输出结果(js.js与.py文件同目录):
function x(a, b)
{
return a+b;
}
var c = "hello";
var d=1,e=2;
var f=d+e;
7
hello
3
(注:本人菜鸡,个人见解,如有错误,欢迎评论指出)
参考文章:
潇洒郎:Python 使用pyexejs运行js代码
python3 用execjs执行JS代码----调用JS方法和变量