亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php新浪通行證登錄新浪微博登錄模擬登錄(瀏覽器版)2016

2020-03-22 17:47:06
字體:
來源:轉載
供稿:網友
  • 由于需要項目需要管理微博平臺內容,集成登錄微博管理平臺功能,所以在抓取網頁基礎上探索了一下瀏覽器模擬登錄,已經實現登錄功能,采用JQuery和php結合的方式實現的,其中需要注意跨域訪問問題,還要注意下面是在phpcms中的,如果大家是單獨php項目,把訪問本地項目就是APP_PATH那個東西和index?m=x&c=xx&a=xx換成自己對應那個鏈接,a代表執行的方法,c代表執行的類,m代表模塊。

    新浪登錄認證流程:

    1.預登陸獲取pubkey/nonce/rsak等用于加密用戶信息(get)。返回json

    2.login.php?client=ssologin對用戶賬號進行加密用戶名采用base64加密,密碼采用rsa2加密,rsa2加密是sina提供的js中加密方法(post)。返回json,cookie

    3.第2步中返回的json包含若干個url,crossDomainUrl是用于SSO統一登錄的,分別參照下面代碼發送請求方式及參數將crossDomainUrl請求一次,獲取cookie即可(get)。返回json,cookie

    4.登錄成功。

    代碼如下:

    <?php/** * tom 2016年4月12日10:37:08 模擬微博登錄 在phpcms中實現的, * 如果單獨phpcms項目根據需要修改即可 *///app js路徑define('APP_PATH','http://mydomain.com/');define('JS_PATH','html' target='_blank'>statics/js/');class login_weibo2 {	// 微博用戶名稱密碼	private $username = '';	private $password = '';	//請求cookie	private $request_cookie = '';	//預登陸返回json	private $json_obj = null;	//請求頭	private $request_headers = array (				'Host' => 'login.sina.com.cn',				'User-Agent' => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0',				'Accept' => '*/*',				'Accept-Language' => 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',				'Accept-Encoding' => 'gzip, deflate',				'Referer' => 'http://login.sina.com.cn/',				'Connection' => 'keep-alive' 		);	//base64加密后用戶名	private $su = '';	//js加密后的密碼	private $sp = '';	function __construct() {	}		//預登陸,瀏覽器直接訪問該方法,登錄方法入口,通過調用該方法來登錄,該方法調用或間接調用了其他方法。	function pre_login() {		// 用戶名稱base64加密-用于預登陸		$this->su = base64_encode ( urlencode ( $this->username ) );		// 預登陸url		$pre_login_url = 'http://login.sina.com.cn/sso/prelogin.php?entry=account&callback=sinaSSOController.preloginCallBack&su=';		$pre_login_url = $pre_login_url . $this->su . '&rsakt=mod&client=ssologin.js(v1.4.15)&_=' . time ();				$return_val = $this->request_url ( $pre_login_url, null, $this->request_cookie, $this->request_headers);		list ( $header, $body ) = explode ( "", $return_val, 2 );		preg_match_all ( "/Set-Cookie:([^;]*);/", $header, $matches );		$info ['cookie'] = $matches;		$info ['header'] = $header;		$info ['content'] = $body;		$this->request_cookie .= $matches;		$body = str_replace('sinaSSOController.preloginCallBack(', '', $body);		$json = str_replace(')', '', $body);		$this->json_obj = json_decode($json);		//ajax后變量重置,所以存到cookie,下面是phpcms中的cookie方式,非phpcms想辦法把值放到cookie或者session中即可		param::set_cookie('sina_su', $this->su);		param::set_cookie('sina_cookie', $this->request_cookie);		param::set_cookie('sina_servertime', $this->json_obj->servertime);		param::set_cookie('sina_nonce', $this->json_obj->nonce);		param::set_cookie('sina_rsakv', $this->json_obj->rsakv);				//加密明文密碼		$this->ajax_pwd_encode();	}		//根據預登陸返回信息,登錄	function account_login() {		//登錄url		$login_url = 'http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)&_='.time();		$this->request_headers['Content-Type'] = 'application/x-www-form-urlencoded';		//登錄所需數據		$post_data['entry'] = 'account';		$post_data['gateway'] = '1';		$post_data['from'] = '';		$post_data['savestate'] = '0';		$post_data['useticket'] = '0';		$post_data['pagerefer'] = '';		$post_data['vsnf'] = '1';		$post_data['su'] = param::get_cookie('sina_su');		$post_data['service'] = 'sso';		$post_data['servertime'] = param::get_cookie('sina_servertime');		$post_data['nonce'] = param::get_cookie('sina_nonce');		$post_data['pwencode'] = 'rsa2';		$post_data['rsakv'] = param::get_cookie('sina_rsakv');		$post_data['sp'] = $this->sp;		$post_data['sr'] = '1366*768';		$post_data['encoding'] = 'UTF-8';		$post_data['cdult'] = '3';		$post_data['domain'] = 'sina.com.cn';		$post_data['prelt'] = '51';		$post_data['returntype'] = 'TEXT';		//登錄		$data = $this->request_url($login_url, $post_data, $this->request_cookie, $this->request_headers);		//獲取返回cookie 及 json數據		list ( $header, $body ) = explode ( "", $data, 2 );		//保存cookie		$this->save_cookie($header);		$json_login = json_decode($body);		//訪問返回json鏈接		$domain_urls = $json_login->crossDomainUrlList;		$i = 0;		foreach ($domain_urls as $v) {			$req_url = $v.'&callback=sinaSSOController.doCrossDomainCallBack&scriptId=ssoscript'.$i.'&client=ssologin.js(v1.4.15)&_='.time();			$req_data = $this->request_url ( $req_url, null, $this->request_cookie, array());			list ( $header, $body ) = explode ( "", $data, 2 );			$this->save_cookie($header);			$i ++;		}	}		function save_cookie($header) {		$headers = explode('', $header);		foreach ($headers as $v) {			$tmp = explode("", $v);			foreach ($tmp as $it) {				$pos = strpos($it, 'Set-Cookie');				if ($pos !== false) {					$cv = explode(":", $it);					$this->request_cookie .= $cv[1].';';					//$_COOKIE[$cv[0]] = $cv[1];					//setcookie($cv[0], $cv[1],  time()+60*60*24*30);					//param::set_cookie($cv[0], $cv[1]);				}			}		}	}		//根據預登陸返回信息,登錄	function browser_login() {		//登錄url		$login_url = 'http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)&_='.time();		//登錄所需數據		$post_data['entry'] = 'account';		$post_data['gateway'] = '1';		$post_data['from'] = '';		$post_data['savestate'] = '0';		$post_data['useticket'] = '0';		$post_data['pagerefer'] = '';		$post_data['vsnf'] = '1';		$post_data['su'] = param::get_cookie('sina_su');		$post_data['service'] = 'sso';		$post_data['servertime'] = param::get_cookie('sina_servertime');		$post_data['nonce'] = param::get_cookie('sina_nonce');		$post_data['pwencode'] = 'rsa2';		$post_data['rsakv'] = param::get_cookie('sina_rsakv');		$post_data['sp'] = $this->sp;		$post_data['sr'] = '1366*768';		$post_data['encoding'] = 'UTF-8';		$post_data['cdult'] = '3';		$post_data['domain'] = 'sina.com.cn';		$post_data['prelt'] = '51';		$post_data['returntype'] = 'TEXT';		echo "<html>";		echo "<body >";		echo "			<form method='post' id='sina_form' action='".$login_url."'>				<input id='entry' name='entry' value='".$post_data['entry']."' type='text'>				<input id='gateway' name='gateway' value='".$post_data['gateway']."' type='text'>				<input id='from' name='from' value='".$post_data['from']."' type='text'>				<input id='savestate' name='savestate' value='".$post_data['savestate']."' type='text'>				<input id='useticket' name='useticket' value='".$post_data['useticket']."' type='text'>				<input id='pagerefer' name='pagerefer' value='".$post_data['pagerefer']."' type='text'>				<input id='vsnf' name='vsnf' value='".$post_data['vsnf']."' type='text'>				<input id='su' name='su' value='".$post_data['su']."' type='text'>				<input id='service' name='service' value='".$post_data['service']."' type='text'>				<input id='servertime' name='servertime' value='".$post_data['servertime']."' type='text'>				<input id='nonce' name='nonce' value='".$post_data['nonce']."' type='text'>				<input id='pwencode' name='pwencode' value='".$post_data['pwencode']."' type='text'>				<input id='rsakv' name='rsakv' value='".$post_data['rsakv']."' type='text'>				<input id='sp' name='sp' value='".$post_data['sp']."' type='text'>				<input id='sr' name='sr' value='".$post_data['sr']."' type='text'>				<input id='encoding' name='encoding' value='".$post_data['encoding']."' type='text'>				<input id='cdult' name='cdult' value='".$post_data['cdult']."' type='text'>				<input id='domain' name='domain' value='".$post_data['domain']."' type='text'>				<input id='prelt' name='prelt' value='".$post_data['prelt']."' type='text'>				<input id='returntype' name='returntype' value='".$post_data['returntype']."' type='text'>			</from>					";		echo "						<script type='text/javascript' src='".APP_PATH.JS_PATH."lib/jquery.min.1.7.2.js'></script>			<script type='text/javascript'>			function doSubmit(){				//document.getElementById('sina_form').submit();// 				$('#sina_form').submit();				//跨域訪問,登錄新浪通行證				 $.getJSON('".$login_url."'+$('#sina_form').serialize()+'&callback=?',     					 function(result) {         					    if (result.retcode == 0) {				 				var domainUrl = result.crossDomainUrlList;				 				var turl = '';				 				for (var i=0; i< domainUrl.length ;i++) {				 					turl = domainUrl[i] + '&callback=sinaSSOController.doCrossDomainCallBack&scriptId=ssoscript'+i+'&client=ssologin.js(v1.4.15)&_=".time()."';									//跨域訪問,登錄微博。微財富。97973.返回的crossdomainurl是SSO統一登錄使用的。				 					$.getJSON(turl+'&callback=?', function(data){				 							//console.log(data);				 							if (i == domainUrl.length) {												setTimeout(function (){                                                        var url = 'http://weibo.com/2445247481/profile';                                                        window.location.href = url;                                                           }, 2000); 				 																	}									});				 				}				 			}   					 });  			}			window.load=doSubmit();			</script>				";		echo "</body>";		echo "</html>";	}		function sina_login() {		//獲取加密后的密碼		$this->sp = $_GET['sp'];		//賬號登錄		$this->browser_login();	}		//調用js 加密密碼	function ajax_pwd_encode() {		echo "<script type='text/javascript' src='".APP_PATH.JS_PATH."lib/jquery.min.1.7.2.js'></script>";		echo <<<EOT		<script type="text/javascript">			var sinaSSOEncoder=sinaSSOEncoder||{};(function(){var hexcase=0;var chrsz=8;this.hex_sha1=function(s){return binb2hex(core_sha1(str2binb(s),s.length*chrsz));};var core_sha1=function(x,len){x[len>>5]|=0x80<<(24-len%32);x[((len+64>>9)<<4)+15]=len;var w=Array(80);var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;var e=-1009589776;for(var i=0;i<x.length;i+=16){var olda=a;var oldb=b;var oldc=c;var oldd=d;var olde=e;for(var j=0;j<80;j++){if(j<16)w[j]=x[i+j];else w[j]=rol(w[j-3]^w[j-8]^w[j-14]^w[j-16],1);var t=safe_add(safe_add(rol(a,5),sha1_ft(j,b,c,d)),safe_add(safe_add(e,w[j]),sha1_kt(j)));e=d;d=c;c=rol(b,30);b=a;a=t;}a=safe_add(a,olda);b=safe_add(b,oldb);c=safe_add(c,oldc);d=safe_add(d,oldd);e=safe_add(e,olde);}return Array(a,b,c,d,e);};var sha1_ft=function(t,b,c,d){if(t<20)return(b&c)|((~b)&d);if(t<40)return b^c^d;if(t<60)return(b&c)|(b&d)|(c&d);return b^c^d;};var sha1_kt=function(t){return(t<20)?1518500249:(t<40)?1859775393:(t<60)?-1894007588:-899497514;};var safe_add=function(x,y){var lsw=(x&0xFFFF)+(y&0xFFFF);var msw=(x>>16)+(y>>16)+(lsw>>16);return(msw<<16)|(lsw&0xFFFF);};var rol=function(num,cnt){return(num<<cnt)|(num>>>(32-cnt));};var str2binb=function(str){var bin=Array();var mask=(1<<chrsz)-1;for(var i=0;i<str.length*chrsz;i+=chrsz)bin[i>>5]|=(str.charCodeAt(i/chrsz)&mask)<<(24-i%32);return bin;};var binb2hex=function(binarray){var hex_tab=hexcase?'0123456789ABCDEF':'0123456789abcdef';var str='';for(var i=0;i<binarray.length*4;i++){str+=hex_tab.charAt((binarray[i>>2]>>((3-i%4)*8+4))&0xF)+hex_tab.charAt((binarray[i>>2]>>((3-i%4)*8))&0xF);}return str;};this.base64={encode:function(input){input=''+input;if(input=='')return '';var output='';var chr1,chr2,chr3='';var enc1,enc2,enc3,enc4='';var i=0;do{chr1=input.charCodeAt(i++);chr2=input.charCodeAt(i++);chr3=input.charCodeAt(i++);enc1=chr1>>2;enc2=((chr1&3)<<4)|(chr2>>4);enc3=((chr2&15)<<2)|(chr3>>6);enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64;}else if(isNaN(chr3)){enc4=64;}output=output+this._keys.charAt(enc1)+this._keys.charAt(enc2)+this._keys.charAt(enc3)+this._keys.charAt(enc4);chr1=chr2=chr3='';enc1=enc2=enc3=enc4='';}while(i<input.length);return output;},_keys:'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='};}).call(sinaSSOEncoder);;(function(){var dbits;var canary=0xdeadbeefcafe;var j_lm=((canary&0xffffff)==0xefcafe);function BigInteger(a,b,c){if(a!=null)if('number'==typeof a)this.fromNumber(a,b,c);else if(b==null && 'string' !=typeof a)this.fromString(a,256);else this.fromString(a,b);}function nbi(){return new BigInteger(null);}function am1(i,x,w,j,c,n){while(--n>=0){var v=x*this[i++]+w[j]+c;c=Math.floor(v/0x4000000);w[j++]=v&0x3ffffff;}return c;}function am2(i,x,w,j,c,n){var xl=x&0x7fff,xh=x>>15;while(--n>=0){var l=this[i]&0x7fff;var h=this[i++]>>15;var m=xh*l+h*xl;l=xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);c=(l>>>30)+(m>>>15)+xh*h+(c>>>30);w[j++]=l&0x3fffffff;}return c;}function am3(i,x,w,j,c,n){var xl=x&0x3fff,xh=x>>14;while(--n>=0){var l=this[i]&0x3fff;var h=this[i++]>>14;var m=xh*l+h*xl;l=xl*l+((m&0x3fff)<<14)+w[j]+c;c=(l>>28)+(m>>14)+xh*h;w[j++]=l&0xfffffff;}return c;}BigInteger.prototype.am=am3;dbits=28;BigInteger.prototype.DB=dbits;BigInteger.prototype.DM=((1<<dbits)-1);BigInteger.prototype.DV=(1<<dbits);var BI_FP=52;BigInteger.prototype.FV=Math.pow(2,BI_FP);BigInteger.prototype.F1=BI_FP-dbits;BigInteger.prototype.F2=2*dbits-BI_FP;var BI_RM='0123456789abcdefghijklmnopqrstuvwxyz';var BI_RC=new Array();var rr,vv;rr='0'.charCodeAt(0);for(vv=0;vv<=9;++vv)BI_RC[rr++]=vv;rr='a'.charCodeAt(0);for(vv=10;vv<36;++vv)BI_RC[rr++]=vv;rr='A'.charCodeAt(0);for(vv=10;vv<36;++vv)BI_RC[rr++]=vv;function int2char(n){return BI_RM.charAt(n);}function intAt(s,i){var c=BI_RC[s.charCodeAt(i)];return(c==null)?-1:c;}function bnpCopyTo(r){for(var i=this.t-1;i>=0;--i)r[i]=this[i];r.t=this.t;r.s=this.s;}function bnpFromInt(x){this.t=1;this.s=(x<0)?-1:0;if(x>0)this[0]=x;else if(x<-1)this[0]=x+DV;else this.t=0;}function nbv(i){var r=nbi();r.fromInt(i);return r;}function bnpFromString(s,b){var k;if(b==16)k=4;else if(b==8)k=3;else if(b==256)k=8;else if(b==2)k=1;else if(b==32)k=5;else if(b==4)k=2;else{this.fromRadix(s,b);return;}this.t=0;this.s=0;var i=s.length,mi=false,sh=0;while(--i>=0){var x=(k==8)?s[i]&0xff:intAt(s,i);if(x<0){if(s.charAt(i)=='-')mi=true;continue;}mi=false;if(sh==0)this[this.t++]=x;else if(sh+k>this.DB){this[this.t-1]|=(x&((1<<(this.DB-sh))-1))<<sh;this[this.t++]=(x>>(this.DB-sh));}else  this[this.t-1]|=x<<sh;sh+=k;if(sh>=this.DB)sh-=this.DB;}if(k==8&&(s[0]&0x80)!=0){this.s=-1;if(sh>0)this[this.t-1]|=((1<<(this.DB-sh))-1)<<sh;}this.clamp();if(mi)BigInteger.ZERO.subTo(this,this);}function bnpClamp(){var c=this.s&this.DM;while(this.t>0&&this[this.t-1]==c)--this.t;}function bnToString(b){if(this.s<0)return '-'+this.negate().toString(b);var k;if(b==16)k=4;else if(b==8)k=3;else if(b==2)k=1;else if(b==32)k=5;else if(b==4)k=2;else return this.toRadix(b);var km=(1<<k)-1,d,m=false,r='',i=this.t;var p=this.DB-(i*this.DB)%k;if(i-->0){if(p<this.DB&&(d=this[i]>>p)>0){m=true;r=int2char(d);}while(i>=0){if(p<k){d=(this[i]&((1<<p)-1))<<(k-p);d|=this[--i]>>(p+=this.DB-k);}else{d=(this[i]>>(p-=k))&km;if(p<=0){p+=this.DB;--i;}}if(d>0)m=true;if(m)r+=int2char(d);}}return m?r:'0';}function bnNegate(){var r=nbi();BigInteger.ZERO.subTo(this,r);return r;}function bnAbs(){return(this.s<0)?this.negate():this;}function bnCompareTo(a){var r=this.s-a.s;if(r!=0)return r;var i=this.t;r=i-a.t;if(r!=0)return r;while(--i>=0)if((r=this[i]-a[i])!=0)return r;return 0;}function nbits(x){var r=1,t;if((t=x>>>16)!=0){x=t;r+=16;}if((t=x>>8)!=0){x=t;r+=8;}if((t=x>>4)!=0){x=t;r+=4;}if((t=x>>2)!=0){x=t;r+=2;}if((t=x>>1)!=0){x=t;r+=1;}return r;}function bnBitLength(){if(this.t<=0)return 0;return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));}function bnpDLShiftTo(n,r){var i;for(i=this.t-1;i>=0;--i)r[i+n]=this[i];for(i=n-1;i>=0;--i)r[i]=0;r.t=this.t+n;r.s=this.s;}function bnpDRShiftTo(n,r){for(var i=n;i<this.t;++i)r[i-n]=this[i];r.t=Math.max(this.t-n,0);r.s=this.s;}function bnpLShiftTo(n,r){var bs=n%this.DB;var cbs=this.DB-bs;var bm=(1<<cbs)-1;var ds=Math.floor(n/this.DB),c=(this.s<<bs)&this.DM,i;for(i=this.t-1;i>=0;--i){r[i+ds+1]=(this[i]>>cbs)|c;c=(this[i]&bm)<<bs;}for(i=ds-1;i>=0;--i)r[i]=0;r[ds]=c;r.t=this.t+ds+1;r.s=this.s;r.clamp();}function bnpRShiftTo(n,r){r.s=this.s;var ds=Math.floor(n/this.DB);if(ds>=this.t){r.t=0;return;}var bs=n%this.DB;var cbs=this.DB-bs;var bm=(1<<bs)-1;r[0]=this[ds]>>bs;for(var i=ds+1;i<this.t;++i){r[i-ds-1]|=(this[i]&bm)<<cbs;r[i-ds]=this[i]>>bs;}if(bs>0)r[this.t-ds-1]|=(this.s&bm)<<cbs;r.t=this.t-ds;r.clamp();}function bnpSubTo(a,r){var i=0,c=0,m=Math.min(a.t,this.t);while(i<m){c+=this[i]-a[i];r[i++]=c&this.DM;c>>=this.DB;}if(a.t<this.t){c-=a.s;while(i<this.t){c+=this[i];r[i++]=c&this.DM;c>>=this.DB;}c+=this.s;}else{c+=this.s;while(i<a.t){c-=a[i];r[i++]=c&this.DM;c>>=this.DB;}c-=a.s;}r.s=(c<0)?-1:0;if(c<-1)r[i++]=this.DV+c;else if(c>0)r[i++]=c;r.t=i;r.clamp();}function bnpMultiplyTo(a,r){var x=this.abs(),y=a.abs();var i=x.t;r.t=i+y.t;while(--i>=0)r[i]=0;for(i=0;i<y.t;++i)r[i+x.t]=x.am(0,y[i],r,i,0,x.t);r.s=0;r.clamp();if(this.s!=a.s)BigInteger.ZERO.subTo(r,r);}function bnpSquareTo(r){var x=this.abs();var i=r.t=2*x.t;while(--i>=0)r[i]=0;for(i=0;i<x.t-1;++i){var c=x.am(i,x[i],r,2*i,0,1);if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1))>=x.DV){r[i+x.t]-=x.DV;r[i+x.t+1]=1;}}if(r.t>0)r[r.t-1]+=x.am(i,x[i],r,2*i,0,1);r.s=0;r.clamp();}function bnpDivRemTo(m,q,r){var pm=m.abs();if(pm.t<=0)return;var pt=this.abs();if(pt.t<pm.t){if(q!=null)q.fromInt(0);if(r!=null)this.copyTo(r);return;}if(r==null)r=nbi();var y=nbi(),ts=this.s,ms=m.s;var nsh=this.DB-nbits(pm[pm.t-1]);if(nsh>0){pm.lShiftTo(nsh,y);pt.lShiftTo(nsh,r);}else{pm.copyTo(y);pt.copyTo(r);}var ys=y.t;var y0=y[ys-1];if(y0==0)return;var yt=y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);var d1=this.FV/yt,d2=(1<<this.F1)/yt,e=1<<this.F2;var i=r.t,j=i-ys,t=(q==null)?nbi():q;y.dlShiftTo(j,t);if(r.compareTo(t)>=0){r[r.t++]=1;r.subTo(t,r);}BigInteger.ONE.dlShiftTo(ys,t);t.subTo(y,y);while(y.t<ys)y[y.t++]=0;while(--j>=0){var qd=(r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);if((r[i]+=y.am(0,qd,r,j,0,ys))<qd){y.dlShiftTo(j,t);r.subTo(t,r);while(r[i]<--qd)r.subTo(t,r);}}if(q!=null){r.drShiftTo(ys,q);if(ts!=ms)BigInteger.ZERO.subTo(q,q);}r.t=ys;r.clamp();if(nsh>0)r.rShiftTo(nsh,r);if(ts<0)BigInteger.ZERO.subTo(r,r);}function bnMod(a){var r=nbi();this.abs().divRemTo(a,null,r);if(this.s<0&&r.compareTo(BigInteger.ZERO)>0)a.subTo(r,r);return r;}function Classic(m){this.m=m;}function cConvert(x){if(x.s<0||x.compareTo(this.m)>=0)return x.mod(this.m);else return x;}function cRevert(x){return x;}function cReduce(x){x.divRemTo(this.m,null,x);}function cMulTo(x,y,r){x.multiplyTo(y,r);this.reduce(r);}function cSqrTo(x,r){x.squareTo(r);this.reduce(r);}Classic.prototype.convert=cConvert;Classic.prototype.revert=cRevert;Classic.prototype.reduce=cReduce;Classic.prototype.mulTo=cMulTo;Classic.prototype.sqrTo=cSqrTo;function bnpInvDigit(){if(this.t<1)return 0;var x=this[0];if((x&1)==0)return 0;var y=x&3;y=(y*(2-(x&0xf)*y))&0xf;y=(y*(2-(x&0xff)*y))&0xff;y=(y*(2-(((x&0xffff)*y)&0xffff)))&0xffff;y=(y*(2-x*y%this.DV))%this.DV;return(y>0)?this.DV-y:-y;}function Montgomery(m){this.m=m;this.mp=m.invDigit();this.mpl=this.mp&0x7fff;this.mph=this.mp>>15;this.um=(1<<(m.DB-15))-1;this.mt2=2*m.t;}function montConvert(x){var r=nbi();x.abs().dlShiftTo(this.m.t,r);r.divRemTo(this.m,null,r);if(x.s<0&&r.compareTo(BigInteger.ZERO)>0)this.m.subTo(r,r);return r;}function montRevert(x){var r=nbi();x.copyTo(r);this.reduce(r);return r;}function montReduce(x){while(x.t<=this.mt2)x[x.t++]=0;for(var i=0;i<this.m.t;++i){var j=x[i]&0x7fff;var u0=(j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;j=i+this.m.t;x[j]+=this.m.am(0,u0,x,i,0,this.m.t);while(x[j]>=x.DV){x[j]-=x.DV;x[++j]++;}}x.clamp();x.drShiftTo(this.m.t,x);if(x.compareTo(this.m)>=0)x.subTo(this.m,x);}function montSqrTo(x,r){x.squareTo(r);this.reduce(r);}function montMulTo(x,y,r){x.multiplyTo(y,r);this.reduce(r);}Montgomery.prototype.convert=montConvert;Montgomery.prototype.revert=montRevert;Montgomery.prototype.reduce=montReduce;Montgomery.prototype.mulTo=montMulTo;Montgomery.prototype.sqrTo=montSqrTo;function bnpIsEven(){return((this.t>0)?(this[0]&1):this.s)==0;}function bnpExp(e,z){if(e>0xffffffff||e<1)return BigInteger.ONE;var r=nbi(),r2=nbi(),g=z.convert(this),i=nbits(e)-1;g.copyTo(r);while(--i>=0){z.sqrTo(r,r2);if((e&(1<<i))>0)z.mulTo(r2,g,r);else{var t=r;r=r2;r2=t;}}return z.revert(r);}function bnModPowInt(e,m){var z;if(e<256||m.isEven())z=new Classic(m);else z=new Montgomery(m);return this.exp(e,z);}BigInteger.prototype.copyTo=bnpCopyTo;BigInteger.prototype.fromInt=bnpFromInt;BigInteger.prototype.fromString=bnpFromString;BigInteger.prototype.clamp=bnpClamp;BigInteger.prototype.dlShiftTo=bnpDLShiftTo;BigInteger.prototype.drShiftTo=bnpDRShiftTo;BigInteger.prototype.lShiftTo=bnpLShiftTo;BigInteger.prototype.rShiftTo=bnpRShiftTo;BigInteger.prototype.subTo=bnpSubTo;BigInteger.prototype.multiplyTo=bnpMultiplyTo;BigInteger.prototype.squareTo=bnpSquareTo;BigInteger.prototype.divRemTo=bnpDivRemTo;BigInteger.prototype.invDigit=bnpInvDigit;BigInteger.prototype.isEven=bnpIsEven;BigInteger.prototype.exp=bnpExp;BigInteger.prototype.toString=bnToString;BigInteger.prototype.negate=bnNegate;BigInteger.prototype.abs=bnAbs;BigInteger.prototype.compareTo=bnCompareTo;BigInteger.prototype.bitLength=bnBitLength;BigInteger.prototype.mod=bnMod;BigInteger.prototype.modPowInt=bnModPowInt;BigInteger.ZERO=nbv(0);BigInteger.ONE=nbv(1);function Arcfour(){this.i=0;this.j=0;this.S=new Array();}function ARC4init(key){var i,j,t;for(i=0;i<256;++i)this.S[i]=i;j=0;for(i=0;i<256;++i){j=(j+this.S[i]+key[i%key.length])&255;t=this.S[i];this.S[i]=this.S[j];this.S[j]=t;}this.i=0;this.j=0;}function ARC4next(){var t;this.i=(this.i+1)&255;this.j=(this.j+this.S[this.i])&255;t=this.S[this.i];this.S[this.i]=this.S[this.j];this.S[this.j]=t;return this.S[(t+this.S[this.i])&255];}Arcfour.prototype.init=ARC4init;Arcfour.prototype.next=ARC4next;function prng_newstate(){return new Arcfour();}var rng_psize=256;var rng_state;var rng_pool;var rng_pptr;function rng_seed_int(x){rng_pool[rng_pptr++]^=x&255;rng_pool[rng_pptr++]^=(x>>8)&255;rng_pool[rng_pptr++]^=(x>>16)&255;rng_pool[rng_pptr++]^=(x>>24)&255;if(rng_pptr>=rng_psize)rng_pptr-=rng_psize;}function rng_seed_time(){rng_seed_int(new Date().getTime());}if(rng_pool==null){rng_pool=new Array();rng_pptr=0;var t;while(rng_pptr<rng_psize){t=Math.floor(65536*Math.random());rng_pool[rng_pptr++]=t>>>8;rng_pool[rng_pptr++]=t&255;}rng_pptr=0;rng_seed_time();}function rng_get_byte(){if(rng_state==null){rng_seed_time();rng_state=prng_newstate();rng_state.init(rng_pool);for(rng_pptr=0;rng_pptr<rng_pool.length;++rng_pptr)rng_pool[rng_pptr]=0;rng_pptr=0;}return rng_state.next();}function rng_get_bytes(ba){var i;for(i=0;i<ba.length;++i)ba[i]=rng_get_byte();}function SecureRandom(){}SecureRandom.prototype.nextBytes=rng_get_bytes;function parseBigInt(str,r){return new BigInteger(str,r);}function linebrk(s,n){var ret='';var i=0;while(i+n<s.length){ret+=s.substring(i,i+n)+'/n';i+=n;}return ret+s.substring(i,s.length);}function byte2Hex(b){if(b<0x10)return '0'+b.toString(16);else  return b.toString(16);}function pkcs1pad2(s,n){if(n<s.length+11){return null;}var ba=new Array();var i=s.length-1;while(i>=0&&n>0){var c=s.charCodeAt(i--);if(c<128){ba[--n]=c;}else if((c>127)&&(c<2048)){ba[--n]=(c&63)|128;ba[--n]=(c>>6)|192;}else{ba[--n]=(c&63)|128;ba[--n]=((c>>6)&63)|128;ba[--n]=(c>>12)|224;}}ba[--n]=0;var rng=new SecureRandom();var x=new Array();while(n>2){x[0]=0;while(x[0]==0)rng.nextBytes(x);ba[--n]=x[0];}ba[--n]=2;ba[--n]=0;return new BigInteger(ba);}function RSAKey(){this.n=null;this.e=0;this.d=null;this.p=null;this.q=null;this.dmp1=null;this.dmq1=null;this.coeff=null;}function RSASetPublic(N,E){if(N!=null&&E!=null&&N.length>0&&E.length>0){this.n=parseBigInt(N,16);this.e=parseInt(E,16);}else alert('Invalid RSA public key');}function RSADoPublic(x){return x.modPowInt(this.e,this.n);}function RSAEncrypt(text){var m=pkcs1pad2(text,(this.n.bitLength()+7)>>3);if(m==null)return null;var c=this.doPublic(m);if(c==null)return null;var h=c.toString(16);if((h.length&1)==0)return h;else return '0'+h;}RSAKey.prototype.doPublic=RSADoPublic;RSAKey.prototype.setPublic=RSASetPublic;RSAKey.prototype.encrypt=RSAEncrypt;this.RSAKey=RSAKey;}).call(sinaSSOEncoder);function getpass(pwd,servicetime,nonce,rsaPubkey){var RSAKey=new sinaSSOEncoder.RSAKey();RSAKey.setPublic(rsaPubkey,'10001');var password=RSAKey.encrypt([servicetime,nonce].join('/t')+'/n'+pwd);return password;}		</script>EOT;		echo "			<script type='text/javascript'>			// //下面的鏈接是phpcms中的使用方式,單獨php項目調用sina_login方法就行			var url = '".APP_PATH."index.php?m=admin&c=login_weibo&a=sina_login';			var encrpt = getpass('".$this->password."', ".$this->json_obj->servertime.", '".$this->json_obj->nonce."', '".$this->json_obj->pubkey."');			//$.post(url, {sp:encrpt});			// //下面的鏈接是phpcms中的使用方式,單獨php項目調用sina_login方法就行			window.location.href='".APP_PATH."index.php?m=admin&c=login_weibo2&a=sina_login&sp='+encrpt;			</script>";	}		/**	 * 模擬post、get請求	 *	 * @param string $url        		 * @param array $post_data	 *        	null時,get請求	 * @param string $request_cookie        		 */	function request_url($url = '', $post_data = array(), $request_cookies = '', $request_headers = '', $return_cookie=1) {		if (empty ( $url )) {			return false;		}		$is_post = false;		if (! empty ( $post_data ) && is_array ( $post_data )) {			$o = "";			foreach ( $post_data as $k => $v ) {				$o .= "$k=" . urlencode ( $v ) . "&";			}			$post_data = substr ( $o, 0, - 1 );			$is_post = true;		}				$ch = curl_init (); // 初始化curl		curl_setopt ( $ch, CURLOPT_URL, $url ); // 抓取指定網頁		curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 ); // 要求結果為字符串且輸出到屏幕上		if ($is_post) {			curl_setopt ( $ch, CURLOPT_POST, 1 ); // post提交方式			curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data ); // post數據		} 		curl_setopt ( $ch, CURLOPT_COOKIE, $request_cookies ); // 請求cookie		curl_setopt ( $ch, CURLOPT_HEADER, $return_cookie); // 返回cookie到頭		curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 120 );		curl_setopt ( $ch, CURLOPT_HTTPHEADER, $request_headers );		curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1);		$data = curl_exec ( $ch ); // 運行curl		curl_close ( $ch );		return $data;	}}?>


    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    国产精品爱久久久久久久| 91av成人在线| 97在线视频免费| 精品国产一区二区三区久久狼5月| 国产精品久久久久免费a∨大胸| 91视频国产高清| 日韩中文字幕网| 久久久欧美一区二区| 国产精品美女主播| 亚洲黄一区二区| 亚洲黄色www网站| 亚洲欧美福利视频| 国产精品 欧美在线| 久久久久久久久久亚洲| 日韩中文字幕在线视频播放| 欧美成人sm免费视频| 亚洲国产一区自拍| 国产精品久久不能| 国产精品成av人在线视午夜片| 清纯唯美日韩制服另类| 欧美日韩国产一区二区三区| 中文字幕亚洲二区| 亚洲欧美制服第一页| 在线视频中文亚洲| 亚洲欧美日韩在线一区| 2020欧美日韩在线视频| 色综合久久久888| 亚洲aⅴ男人的天堂在线观看| 亚洲一区二区三区成人在线视频精品| 午夜免费久久久久| 亚洲欧美国产精品| 亚洲最大av在线| 亚洲一区二区久久久久久久| 国产精品99导航| 富二代精品短视频| 欧美成人免费全部| 日韩免费看的电影电视剧大全| 欧美性极品xxxx娇小| 夜夜嗨av色综合久久久综合网| 色偷偷av亚洲男人的天堂| 日韩欧美成人区| 欧美野外wwwxxx| 日韩欧美精品中文字幕| 日韩女优人人人人射在线视频| 欧美国产精品va在线观看| 热99精品只有里视频精品| 国产精品福利无圣光在线一区| 国产日本欧美一区| 最近2019中文免费高清视频观看www99| 在线精品91av| 久久琪琪电影院| 日韩中文有码在线视频| 欧美大片va欧美在线播放| 日本久久久久久久| 中文字幕在线看视频国产欧美| 成人免费激情视频| 色小说视频一区| 欧美日韩成人精品| 国产精品美女久久久久av超清| 成人激情视频在线| 欧美日韩精品在线观看| www.日韩免费| 国产主播精品在线| 欧美成人一区二区三区电影| 欧美一级片免费在线| 欧美第一页在线| 97在线免费观看| 成人情趣片在线观看免费| 韩国一区二区电影| 黄色成人av网| 久久视频在线免费观看| 国产精品欧美日韩久久| 亚洲一区二区三区四区视频| 久久久久久成人精品| 97视频色精品| 欧美黑人xxxx| 亚洲天天在线日亚洲洲精| 亚洲精品福利在线观看| 欧美黑人狂野猛交老妇| 亚洲图片欧美日产| 亚洲一区第一页| 久久成人一区二区| 亚洲综合小说区| 亚洲精品欧美一区二区三区| 在线观看亚洲视频| 91夜夜未满十八勿入爽爽影院| 在线精品国产成人综合| 精品中文字幕在线观看| 久久中文字幕视频| 国产精品专区h在线观看| 欧美一区二区三区艳史| 91国产高清在线| 亚洲国产精彩中文乱码av| 91高清视频在线免费观看| 91精品国产综合久久香蕉的用户体验| 国产一区私人高清影院| 国产精品电影网站| 欧美日本在线视频中文字字幕| 大桥未久av一区二区三区| 日韩精品在线视频观看| 久久99视频精品| 国产成人精品视频在线| 亚洲色图五月天| 成人伊人精品色xxxx视频| 亚洲男人天堂2023| 17婷婷久久www| 成人精品一区二区三区电影黑人| 欧美午夜女人视频在线| 国产日韩在线视频| 久久久久久久一区二区| 97视频免费在线观看| 色阁综合伊人av| 亚洲精品视频二区| 日韩在线视频网| 日韩欧美在线字幕| 91大神在线播放精品| 亚洲淫片在线视频| 久久久久久久久久久免费| 久久久久久久久久婷婷| 日韩电影在线观看永久视频免费网站| 全色精品综合影院| 久久偷看各类女兵18女厕嘘嘘| 日韩视频在线一区| 亚洲黄色av网站| 精品福利在线观看| 亚洲成人av在线| 在线一区二区日韩| 久久男人的天堂| 日韩精品在线免费观看| 伊人久久五月天| 国产欧美日韩亚洲精品| 国产精品一区二区av影院萌芽| 欧美激情在线播放| 911国产网站尤物在线观看| 久久视频在线播放| 26uuu另类亚洲欧美日本老年| 理论片在线不卡免费观看| 国产91在线播放精品91| 5566日本婷婷色中文字幕97| 久久久久久久久亚洲| 久久久国产精品x99av| 国产日本欧美一区二区三区在线| 国产色婷婷国产综合在线理论片a| 91欧美激情另类亚洲| 97av在线播放| 精品视频在线播放| 国产91在线播放| 国产亚洲精品成人av久久ww| 97国产在线视频| 国产精品一区二区三区免费视频| 久久精品视频一| 国产精品日韩av| 欧美成人三级视频网站| 欧美日韩国产va另类| 日本成熟性欧美| 久久精品夜夜夜夜夜久久| 国产精品成人aaaaa网站| 欧美成人性色生活仑片| 日韩av手机在线看| 久久精品小视频| 亚洲va欧美va国产综合剧情| 欧美日韩在线影院| 欧美放荡办公室videos4k| 欧美又大粗又爽又黄大片视频|