HttpClient4模拟登录腾讯微博及分享功能
2012-03-31 17:07
555 查看
package com.wolf.httpclient; import java.io.FileReader; import java.util.ArrayList; import java.util.List; import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.params.HttpConnectionParams; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; public class TencentClient { /** * @param args */ public static void main(String[] args) { HttpClient client = new DefaultHttpClient(); client.getParams().setParameter( HttpConnectionParams.CONNECTION_TIMEOUT, 5000); try { /*********************获取验证码***********************/ HttpGet get = new HttpGet( "http://ptlogin2.qq.com/check?uin="+用户名或QQ号+"&appid=46000101&r=0.37908964480776913"); HttpResponse response = client.execute(get); String entity = EntityUtils.toString(response.getEntity()); String[] checkNum = entity.substring(entity.indexOf("(") + 1, entity.lastIndexOf(")")).replace("'", "").split(","); System.out.println(checkNum[1]); String pass=""; /******************** *加密密码***************************/ ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("javascript"); String jsFileName = "src/md5.js"; //指定md5加密文件 // 读取js文件 FileReader reader; reader = new FileReader(jsFileName); engine.eval(reader); if (engine instanceof Invocable) { Invocable invoke = (Invocable) engine; // 调用preprocess方法,并传入两个参数密码和验证码 pass = (String)invoke.invokeFunction("preprocess", 密码,checkNum[1]); System.out.println("c = " + pass); } reader.close(); /*************************登录****************************/ get=new HttpGet("http://ptlogin2.qq.com/login?ptlang=2052&u=用户名或QQ号&p="+pass+"&verifycode="+checkNum[1]+"&low_login_enable=1&low_login_hour=720&aid=46000101&u1=http%3A%2F%2Ft.qq.com&ptredirect=1&h=1&from_ui=1&dumy=&fp=loginerroralert&action=4-13-11101&dummy="); System.out.println(get.getURI()); response = client.execute(get); entity = EntityUtils.toString(response.getEntity()); System.out.println(entity); /*************************分享*************************/ HttpPost post = new HttpPost("http://radio.t.qq.com/publish.php"); //这句很重要 post.addHeader("Referer","http://radio.t.qq.com/share.php?title=%E4%B9%8C%E9%B2%81%E6%9C%A8%E9%BD%90%E5%B8%82%E5%A4%A7%E9%A3%8E%E8%87%B473%E4%BA%BA%E5%8F%97%E4%BC%A4%203%E4%BA%BA%E6%AD%BB%E4%BA%A1(%E5%9B%BE)&url=http://news.qq.com/a/20120331/000027.htm&pref=qqcom.dp.tmblog&source=qqnews"); List<NameValuePair> nvps = new ArrayList<NameValuePair>(); nvps.add(new BasicNameValuePair("content", "乌鲁木齐市大风致73人受伤 3人死亡(图) http://news.qq.com/a/20120331/000027.htm (分享自 @腾讯新闻 )")); nvps.add(new BasicNameValuePair("countType", "")); nvps.add(new BasicNameValuePair("pic", "")); nvps.add(new BasicNameValuePair("source", "1000001")); nvps.add(new BasicNameValuePair("sourcepic", "http://img1.gtimg.com/news/pics/hv1/125/130/1010/65708525.jpg")); nvps.add(new BasicNameValuePair("viewModel", "0")); nvps.add(new BasicNameValuePair("wizardpref","qqcom.dp.tmblog")); nvps.add(new BasicNameValuePair("wizardurl", "http://news.qq.com/a/20120331/000027.htm")); post.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); response = client.execute(post); entity = EntityUtils.toString(response.getEntity()); System.out.println(entity); } catch (Exception e) { // TODO: handle exception } } }
md5.js密码加密文件
var chrsz=8; var mode=32; var hexcase=1; function preprocess(pwd,check){ var B=""; B=check; var value=md5(md5_3(pwd)+B); return value; } function md5_3(B){ var A=new Array; A=core_md5(str2binl(B),B.length*chrsz); A=core_md5(A,16*chrsz); A=core_md5(A,16*chrsz); return binl2hex(A); } function md5(A){ return hex_md5(A); } function hex_md5(A){ return binl2hex(core_md5(str2binl(A),A.length*chrsz)); } function str_hmac_md5(A,B){ return binl2str(core_hmac_md5(A,B)); } function core_md5(K,F){ K[F>>5]|=128<<((F)%32); K[(((F+64)>>>9)<<4)+14]=F; var J=1732584193; var I=-271733879; var H=-1732584194; var G=271733878; for(var C=0;C<K.length;C+=16){ var E=J; var D=I; var B=H; var A=G; J=md5_ff(J,I,H,G,K[C+0],7,-680876936); G=md5_ff(G,J,I,H,K[C+1],12,-389564586); H=md5_ff(H,G,J,I,K[C+2],17,606105819); I=md5_ff(I,H,G,J,K[C+3],22,-1044525330); J=md5_ff(J,I,H,G,K[C+4],7,-176418897); G=md5_ff(G,J,I,H,K[C+5],12,1200080426); H=md5_ff(H,G,J,I,K[C+6],17,-1473231341); I=md5_ff(I,H,G,J,K[C+7],22,-45705983); J=md5_ff(J,I,H,G,K[C+8],7,1770035416); G=md5_ff(G,J,I,H,K[C+9],12,-1958414417); H=md5_ff(H,G,J,I,K[C+10],17,-42063); I=md5_ff(I,H,G,J,K[C+11],22,-1990404162); J=md5_ff(J,I,H,G,K[C+12],7,1804603682); G=md5_ff(G,J,I,H,K[C+13],12,-40341101); H=md5_ff(H,G,J,I,K[C+14],17,-1502002290); I=md5_ff(I,H,G,J,K[C+15],22,1236535329); J=md5_gg(J,I,H,G,K[C+1],5,-165796510); G=md5_gg(G,J,I,H,K[C+6],9,-1069501632); H=md5_gg(H,G,J,I,K[C+11],14,643717713); I=md5_gg(I,H,G,J,K[C+0],20,-373897302); J=md5_gg(J,I,H,G,K[C+5],5,-701558691); G=md5_gg(G,J,I,H,K[C+10],9,38016083); H=md5_gg(H,G,J,I,K[C+15],14,-660478335); I=md5_gg(I,H,G,J,K[C+4],20,-405537848); J=md5_gg(J,I,H,G,K[C+9],5,568446438); G=md5_gg(G,J,I,H,K[C+14],9,-1019803690); H=md5_gg(H,G,J,I,K[C+3],14,-187363961); I=md5_gg(I,H,G,J,K[C+8],20,1163531501); J=md5_gg(J,I,H,G,K[C+13],5,-1444681467); G=md5_gg(G,J,I,H,K[C+2],9,-51403784); H=md5_gg(H,G,J,I,K[C+7],14,1735328473); I=md5_gg(I,H,G,J,K[C+12],20,-1926607734); J=md5_hh(J,I,H,G,K[C+5],4,-378558); G=md5_hh(G,J,I,H,K[C+8],11,-2022574463); H=md5_hh(H,G,J,I,K[C+11],16,1839030562); I=md5_hh(I,H,G,J,K[C+14],23,-35309556); J=md5_hh(J,I,H,G,K[C+1],4,-1530992060); G=md5_hh(G,J,I,H,K[C+4],11,1272893353); H=md5_hh(H,G,J,I,K[C+7],16,-155497632); I=md5_hh(I,H,G,J,K[C+10],23,-1094730640); J=md5_hh(J,I,H,G,K[C+13],4,681279174); G=md5_hh(G,J,I,H,K[C+0],11,-358537222); H=md5_hh(H,G,J,I,K[C+3],16,-722521979); I=md5_hh(I,H,G,J,K[C+6],23,76029189); J=md5_hh(J,I,H,G,K[C+9],4,-640364487); G=md5_hh(G,J,I,H,K[C+12],11,-421815835); H=md5_hh(H,G,J,I,K[C+15],16,530742520); I=md5_hh(I,H,G,J,K[C+2],23,-995338651); J=md5_ii(J,I,H,G,K[C+0],6,-198630844); G=md5_ii(G,J,I,H,K[C+7],10,1126891415); H=md5_ii(H,G,J,I,K[C+14],15,-1416354905); I=md5_ii(I,H,G,J,K[C+5],21,-57434055); J=md5_ii(J,I,H,G,K[C+12],6,1700485571); G=md5_ii(G,J,I,H,K[C+3],10,-1894986606); H=md5_ii(H,G,J,I,K[C+10],15,-1051523); I=md5_ii(I,H,G,J,K[C+1],21,-2054922799); J=md5_ii(J,I,H,G,K[C+8],6,1873313359); G=md5_ii(G,J,I,H,K[C+15],10,-30611744); H=md5_ii(H,G,J,I,K[C+6],15,-1560198380); I=md5_ii(I,H,G,J,K[C+13],21,1309151649); J=md5_ii(J,I,H,G,K[C+4],6,-145523070); G=md5_ii(G,J,I,H,K[C+11],10,-1120210379); H=md5_ii(H,G,J,I,K[C+2],15,718787259); I=md5_ii(I,H,G,J,K[C+9],21,-343485551); J=safe_add(J,E); I=safe_add(I,D); H=safe_add(H,B); G=safe_add(G,A); } if(mode==16){ return Array(I,H); }else{ return Array(J,I,H,G); } } function md5_cmn(F,C,B,A,E,D){ return safe_add(bit_rol(safe_add(safe_add(C,F),safe_add(A,D)),E),B); } function md5_ff(C,B,G,F,A,E,D){ return md5_cmn((B&G)|((~B)&F),C,B,A,E,D); } function md5_gg(C,B,G,F,A,E,D){ return md5_cmn((B&F)|(G&(~F)),C,B,A,E,D); } function md5_hh(C,B,G,F,A,E,D){ return md5_cmn(B^G^F,C,B,A,E,D); } function md5_ii(C,B,G,F,A,E,D){ return md5_cmn(G^(B|(~F)),C,B,A,E,D); } function core_hmac_md5(C,F){ var E=str2binl(C); if(E.length>16){ E=core_md5(E,C.length*chrsz); } var A=Array(16),D=Array(16); for(var B=0;B<16;B++){ A[B]=E[B]^909522486; D[B]=E[B]^1549556828; } var G=core_md5(A.concat(str2binl(F)),512+F.length*chrsz); return core_md5(D.concat(G),512+128); } function safe_add(A,D){ var C=(A&65535)+(D&65535); var B=(A>>16)+(D>>16)+(C>>16); return(B<<16)|(C&65535); } function bit_rol(A,B){ return(A<<B)|(A>>>(32-B)); } function str2binl(D){ var C=Array(); var A=(1<<chrsz)-1; for(var B=0;B<D.length*chrsz;B+=chrsz){ C[B>>5]|=(D.charCodeAt(B/chrsz)&A)<<(B%32); } return C; } function binl2str(C){ var D=""; var A=(1<<chrsz)-1; for(var B=0;B<C.length*32;B+=chrsz){ D+=String.fromCharCode((C[B>>5]>>>(B%32))&A); } return D; } function binl2hex(C){ var B=hexcase?"0123456789ABCDEF":"0123456789abcdef"; var D=""; for(var A=0;A<C.length*4;A++){ D+=B.charAt((C[A>>2]>>((A%4)*8+4))&15)+B.charAt((C[A>>2]>>((A%4)*8))&15); } return D; }
相关文章推荐
- HttpClient4模拟登录腾讯微博及分享功能
- C# 实现模拟登录功能,实现公共类分享。
- C# 实现模拟登录功能,实现公共类分享。
- ASP.NET MVC使用中转站方式获取code实现微信登录,分享功能
- 使用share SDK实现腾讯微博授权登录分享(1.x版本)
- -Java 模拟登录时需要输入验证码功能
- python模拟登录百度代码分享(获取百度贴吧等级)
- 第三方集成微信登录、分享等功能的sdk
- java模拟post请求登录猫扑示例分享
- 根据MVP项目设计模式模拟的登录功能
- IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
- IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
- shell脚本实现ssh自动登录功能分享
- Python 实现腾讯微博模拟登录 (附源码)
- iOS友盟三方分享登录功能
- IOS项目集成ShareSDK分享登录功能
- React Native 集成分享第三方登录功能分享第三方登录模块开发(iOS)
- Java小程序之集合框架模拟数据库实现用户登录和注册功能
- iOS开发---集成ShareSDK实现第三方登录、分享、关注等功能。