http://bbs.csdn.net/topics/370182775

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

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( 5 11 );
          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( 8 24 );
            
             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" ));
                    
     }
}

转载于:https://www.cnblogs.com/l1b2q31/articles/2767277.html

58同城自动登录。。分享给大家相关推荐

  1. 58同城自动登录功能 分享给大家!

    http://topic.csdn.net/u/20110910/21/5D70F979-52AD-4016-8207-DB6E4CE57FBB.html 以上是分享地址

  2. 58同城协议登录案例

    案例:通过协议模拟登录58同城 login url : https://passport.58.com/58/login/pc/dologin 观察了一下需要注意的参数有: username: 账号 ...

  3. 对于58同城自动登陆的补充【主要是代码】

    http://blog.csdn.net/silence1214/article/details/6694373 http://blog.csdn.net/silence1214/article/de ...

  4. (HttpClient技术)(58同城系列)58同城登录

    已经有很长时间,想开发一个58同城的系列软件了,对于HttpClient技术的钻研和进步,我觉得,我觉得自己还是有能力胜任的,终于有一个契机(至于什么原因呢,暂且保密,说出来,太俗了),这一星期来,抓 ...

  5. (HttpClient技术)(58同城系列)58同城登录加密的js

    关于登录部分的代码太长了,所以决定 把js部分分离开来,本来想把加密的js,上传到下载的,不过想想,这样太坑爹了了,本来就一个简单的js,还去片积分,太不像话了,下面就具体来讲讲58同城登录部分的加密 ...

  6. 58 同城 post 参数分析之 eval 加密

    前言 58 同城是国内领先的生活分类信息网站,海量生活信息免费发布查询.提供找房子.找工作.二手物品买卖.二手车.58 团购.商家黄页.宠物票务.旅游.交友等多种生活信息.对于数据分析师来说,58 同 ...

  7. python+selenium实现58同城简历自动刷新,永排第一

    最近想试试找工作,所以在58同城上放了简历,这个网站的简历管理里有一个功能,就是刷新,每刷一次,自己简历就会变成刚刚修改过的,排在该类的最前面,相当于手工置顶. 于是我想用python来实现自动点击. ...

  8. python课设总结_Python技术分享课总结:用Python模拟知乎自动登录

    原标题:Python技术分享课总结:用Python模拟知乎自动登录 Python语言是由Guido van Rossum大牛在1989年发明,它是当今世界最受欢迎的计算机编程语言之一,也是一门&quo ...

  9. 58同城登录 c#,非直接操作js

    在github博客那边:58同城登录 c#,非直接操作js http://pwg17.github.com/2013/03/23/58-login-csharp/ 转载于:https://www.cn ...

最新文章

  1. 青少年电子信息智能创新大赛 赛项说明(Scratch编程创新挑战赛)
  2. 图机器学习有多大神力?
  3. 用三个线程实现生产者消费者模型,其中一个线程作为生产者,二个线程作为消费者,生产者随机生产一个时间戳或者字符串,消费者消费这个时间戳,并不能重复消费,并将其打印出来
  4. python开发的软件有哪些-有哪些值得推荐的 Python 开发工具?
  5. [PowerShell] PowerShell学习脚印
  6. mapper-reducer word count 实例
  7. 网站调用百度地图 根据地址查询经纬度
  8. [BUAA OO]第三次博客作业
  9. django mysql secure_auth_MySQL8.0的用户密码加密方式Django2.1兼容。
  10. IDEA中自动导包快捷键
  11. matlab 角度转四元数_学习笔记—四元数与欧拉角之间的转换
  12. vmware安装win10并使用xshell成功连接及虚拟机中win10设置静态ip
  13. 电脑插入了U盘却读取不出来的方法
  14. word字体号对应的磅数
  15. win8.1删除桌面的IE图标
  16. 【工具】C盘垃圾自动清理软件
  17. 新的我们、新的梦想、新的目标、新的未来 —— 44期开班贴
  18. 简述c++语言的特点(优点)
  19. TextView添加下划线
  20. 2022年数据分析决赛试题简要分析

热门文章

  1. android simpleperf工具介绍
  2. Unity得到屏幕宽度
  3. html5采集手写签名,前端canvas手写签名(含移动端)
  4. 程序员眼中的中国传统文化-王阳明《传习录》18
  5. Python获取下周一日期
  6. 阿里云中间件是什么,有哪些产品
  7. 业务应用数据库压力过大解决方案
  8. 爱情的9个真相 。(想谈恋爱的看,正在谈恋爱的看,不想谈恋爱的也可以看看。)
  9. 活动(已结束)--我们是冠军,啊呸,我们是CSDN VIP
  10. 清华一日游-恰逢清华大学99周年校庆