html目录参数加密,从HTML文件中取出JS加密需要的参数,并调用js内的加密算法
简介这篇文章主要介绍了从HTML文件中取出JS加密需要的参数,并调用js内的加密算法以及相关的经验技巧,文章约2677字,浏览量385,点赞数2,值得参考!
背景,爬虫程序需要模拟登陆,账号密码是经js加密的,加密所需的参数需要从html页面中取出
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ScriptEngineTest {
public static void main(String[] args) throws IOException, ScriptException, NoSuchMethodException {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
String jsFileName = "src/main/resources/static/ss.js";
String htmlFileName = "src/main/resources/static/url.html";
Pattern pattern = Pattern.compile(""10001", "", "(.*?)"");
String htmldatas = readfile(htmlFileName);
String key = getkey(pattern, htmldatas);
System.out.println("Key=" + key);
FileReader reader = new FileReader(jsFileName);
engine.eval(reader);
if (engine instanceof Invocable) {
Invocable invoke = (Invocable) engine;
String c = (String) invoke.invokeFunction("find", "10001", key, "111111");
System.out.println("加密后:" + c);
}
reader.close();
}
public static String readfile(String filePath) {
File file = new File(filePath);
InputStream input = null;
try {
input = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
StringBuffer buffer = new StringBuffer();
byte[] bytes = new byte[1024];
try {
for (int n; (n = input.read(bytes)) != -1; ) {
buffer.append(new String(bytes, 0, n, "UTF-8"));
}
} catch (IOException e) {
e.printStackTrace();
}
return buffer.toString();
}
public static String getkey(Pattern pattern, String htmldatas) {
Matcher matcher = pattern.matcher(htmldatas);
String htmldata = "";
String key = "";
if (matcher.find()) {
htmldata = matcher.group();
System.out.println("htmldata=" + htmldata);
String ss[] = htmldata.split(",");
key = ss[2].replace(""","").trim();
}
return key;
}
}
html目录参数加密,从HTML文件中取出JS加密需要的参数,并调用js内的加密算法相关推荐
- java resources 目录_[Java] 在 jar 文件中读取 resources 目录下的文件
注意两点: 1. 将资源目录添加到 build path,确保该目录下的文件被拷贝到 jar 文件中. 2. jar 内部的东西,可以当作 stream 来读取,但不应该当作 file 来读取. 例子 ...
- md5 php 加密后乱码_PHP中的密码加密的解决方案总结
很多用户多个网站使用一个密码,当一个密码丢失其他也遭殃,本篇文章介绍了PHP中的密码加密的解决方案总结,有需要的朋友可以了解一下. 层出不穷的类似事件对用户会造成巨大的影响,因为人们往往习惯在不同网站 ...
- 【办公自动化实例】使用python将多个excel文件中的多个sheet表合并到一个表内
文章目录 一.需求 二.处理方式 三.代码实现 一.需求 将多个excel文件中的多个sheet表合并到一个工作簿内,参考例子如图: 二.处理方式 1.通过os模块遍历文件,提取获取xlsx文件的路径 ...
- java数据从本地文件中取出_java 从数据库取数据并存入本地文本中
要求如下: 1.连接数据库,取数据,weibo表中取出uid和text 2.判断uid是否相同,如果相同,则把其对应的text存入路径为D:\data1的同一文件中,并且以此uid命... 要求如下: ...
- js文件中声明的一个json对象, 在另一个js文件中可以直接使用。
1. 如在 AAA.js 文件中声明一个json对象. var world_geo_json = {"type":"FeatureCollection",&qu ...
- matlab函数参数命令,matlab函数文件中的输出参数如何不在命令窗口显示
www.mh456.com防采集. 不要直接像普通程序2113一样运行函数,函数是用来5261调用的,如果你在其它程序中调4102用或在命1653令行中输入result=function**():的话 ...
- python输入函数格式_python如何提取.c文件中的指定函数的输入参数
比如你的C文件是c_functions.c: 内容如下:normal_1(in-1, in-2, in-3) { ; } normal_2() { ; } 程序参考源码:import re f = o ...
- python参数默认值实例_Python中使用partial改变方法默认参数实例
#!/usr/bin/env python # -*- coding: utf-8 -*- #python2.7x #partial.py #authror: orangleliu ''' funct ...
- jdk8 参数为方法_JDK 8中的几乎命名的方法参数
jdk8 参数为方法 有时在Java中命名方法参数确实很不错,这看起来可能已经很长时间了,但是始终还有其他一些解决方法,例如使用构建器模式来获得类似的行为,这将为一点点. 在我看来,使用JDK 8中的 ...
最新文章
- android jni语法,Android NDK中的JNIEXPORT和JNICALL
- Java架构演进之路
- C++ Primer 学习笔记(第四章:表达式)
- 修改完 字符串单词首字母大写
- 关于Verilog HDL的一些技巧、易错、易忘点(不定期更新)
- git常用命令和场景
- 600 imp oracle_oracle数据库的导入导出(imp和exp)
- Android中获取手机电量信息
- 从svn导入项目后处理一些报错信息
- LeetCode 1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?(前缀和)
- Java面试题:高并发环境下,jdk7 HashMap可能出现的致命问题。注意:是在jdk7与及以下版本
- 栈帧与操作数栈剖析及符号引用与直接引用的转换
- Java虚拟机学习总结(4)—— JVM 性能调优常用参数详解
- API网关的几点思考
- 零基础java学习笔记
- impala日期格式转换
- 网络计算机没有权限,电脑网络连接出现“无Internet访问权限”怎么办?
- Golang可能会踩的58个坑之中级篇
- 搭建一个 软件授权码管理系统
- java实现图片文件上传下载_java实现文件的上传和下载
热门文章
- 图标代码_通过两行代码即可调整苹果电脑 Launchpad 图标大小!
- 观察者模式实际例子demo
- KVM Virtual Networking Concepts
- Prometheus-普罗米修斯:高扩展性的监控和报警系统
- 2021年三月中旬推荐阅读文章
- ZeroMQ简介:一种高性能的异步消息传递库
- CUDA内存分配、释放、传输,固定内存
- qt 运动控制软件 界面_开源库分享----一款跨平台图形界面的百度网盘不限速客户端...
- SpringCloud feign、hystrix、zuul超时配置
- android 微信支付过程,android 微信 支付 接入流程总结