58同城自动登录

来源:互联网 发布:数据新闻可视化 编辑:程序博客网 时间:2024/06/11 17:07
http://topic.csdn.net/u/20110904/14/8a1ba2c6-7211-4412-aafa-9de4e5982ab9.html看到有人发了个帖子 问58同城登录的问题,我闲的无聊就去58上抓了下包看了下,主要就是p1和p2这两个参数,而两个参数是密码加密后的
结果,去看它的js是怎么加密的,可是它的js是经过压缩过的,只有一行代码,很难找到那个加密的方法,然后我就把它复制下来然后解了下压,结果一眼就看到那个方法,但是他的加密算法很长,用java代码去模拟的话估计很麻烦还容易出错,嘿嘿。所以我就想到了java 调用 js, 说实话这个以前还没怎么用过,不过用过之后感觉确实用着挺爽的,结果我就把关于算法那些方法全部复制了下来,放到一个文件中,然后用java直接传值调用,拿到加密后的密码 ,然后模拟表单提交,果然OK了,58同城这个网站的登录确实比其他一些网站要麻烦一些,不过知道方法之后还是挺简单的,嘿嘿!!
现在上代码 大家看看 。。

我里面用到了我自己写的一些类,大家想看代码的话
到我这个帖子看看就行了:http://topic.csdn.net/u/20110829/17/3650098a-8a43-4e7d-92e6-406a384e646a.html

 
Java code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
public class WuBa {
 
    public String test(String name,String pass) throws Exception{
        //读取JS文件
        BufferedReader buf = new BufferedReader(new InputStreamReader(new FileInputStream(new File("f:/wuba.js"))));
         
         //调用js。。这里是关键 啊
         ScriptEngineManager scriptManager = new ScriptEngineManager();
         ScriptEngine js = scriptManager.getEngineByExtension("js");
         //执行JS
         js.eval(buf);
         long date = new Date().getTime();
         String time = String.valueOf(date).substring(511);
         Invocable inv2 = (Invocable) js;
          
         //p1的获取                                                   执行js中的方法
         String p1 = (String) inv2.invokeFunction("getm32str",pass,time);
 
        //p2的获取
         String  m32  = (String) inv2.invokeFunction("hex_md5",pass);
          m32 = m32.substring(824);
           
            String result = "";
            for (int i = m32.length() - 1; i >= 0; i--) {
                result += m32.charAt(i);
            }
             
             String p2 = (String)inv2.invokeFunction("getm16str",result,time);
              
             //组装参数
             HashMap<String, String> params = new HashMap<String, String>();
             params.put("path""http://xa.58.com/?utm_source=pinpaizhuanqu&utm_medium=wf&utm_campaign=bp-title");
             params.put("p1", p1);
             params.put("p2", p2);
             params.put("timesign", String.valueOf(date));
             params.put("username", name);
             params.put("mobile""手机号");
             params.put("password""password");
             params.put("remember""on");
             //发送请求并获取cookie
             String cookie =  SendRequest.sendGet("http://passport.58.com/dologin"null, params, "utf-8").getCookie();
             return cookie;
    }
     
    public static void main(String[] args) throws Exception {
                  String cookie = new WuBa().test("majia200""majia123");
                  HashMap<String, String> header = new HashMap<String, String>();
                  header.put("Cookie",cookie);
                   
                  //登陆我的中心 验证是否登陆成功!
                 System.out.println(EntityUtils.toString( SendRequest.sendGet("http://my.58.com/", header, null"utf-8").getHttpEntity(),"utf-8"));
                   
    }
}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 绝地求生不兼容怎么办 办公软件不兼容怎么办 软件不兼容怎么办vivo cpu超过主板功率怎么办 手机游戏下不了怎么办 硬件系统不兼容怎么办 系统主板不兼容怎么办 安装软件不兼容怎么办 win10驱动不尖锐怎么办 苹果内存太小怎么办 内存太小怎么办手机 苹果手机屏幕不能滑动怎么办 vivo手机软件不兼容怎么办 微信无法录音怎么办 手机卡住了怎么办vivo 好钱包闪退怎么办 闲鱼认证失败怎么办 闲鱼买了假门票怎么办 买黄金买到假的怎么办 闲鱼被买家骗了怎么办 闲鱼上小视频没法保存怎么办 qq空间无法查看怎么办 华为手机电池不耐用怎么办 内内被动过怎么办 hp电脑开机黑屏怎么办 网上开店快递费怎么办 保温杯外壳掉漆怎么办 拖鞋前面磨脚怎么办 塑料拖鞋磨脚怎么办 路由器进不去设置界面怎么办 手机号丢了微信登不上怎么办 电脑总是闪黑屏怎么办 支付宝破产钱怎么办 淘宝号码注册过怎么办 农行k宝怎么办信用卡 电脑页面无法显示怎么办 对方银行停止收款怎么办 淘宝东西买太多怎么办 淘宝号黑号了怎么办… 中通包裹异常怎么办 包裹退回去了怎么办