九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
模擬新浪微博登錄(Python+RSA加密算法)
登錄第一步,添加自己的用戶名(username),請求prelogin_url鏈接地址:
prelogin_url = 'http://login.sina.com.cn/sso/prelogin.php?entry=sso&callback=sinaSSOController.preloginCallBack&su=%s&rsakt=mod&client=ssologin.js(v1.4.4)' % username
使用get方法得到以下類似內(nèi)容:
sinaSSOController.preloginCallBack({"retcode":0,"servertime":1362041092,"pcid":"gz-6664c3dea2bfdaa3c94e8734c9ec2c9e6a1f","nonce":"IRYP4N","pubkey":"EB2A38568661887FA180BDDB5CABD5F21C7BFD59C090CB2D245A87AC253062882729293E5506350508E7F9AA3BB77F4333231490F915F6D63C55FE2F08A49B353F444AD3993CACC02DB784ABBB8E42A9B1BBFFFB38BE18D78E87A0E41B9B8F73A928EE0CCEE1F6739884B9777E4FE9E88A1BBE495927AC4A799B3181D6442443","rsakv":"1330428213","exectime":1})
進而從中提取到我們想要的servertime,nonce,pubkey和rsakv。當然,pubkey和rsakv的值我們可以寫死在代碼中,它們是固定值。
2、之前username經(jīng)過BASE64計算:
[python]  
username_ = urllib.quote(username)  
username = base64.encodestring(username)[:-1]  <span style="font-family: Arial, Helvetica, sans-serif;">  </span>  
password經(jīng)過三次SHA1加密,且其中加入了 servertime 和 nonce 的值來干擾。即:兩次SHA1加密后,結(jié)果加上servertime和nonce的值,再SHA1算一次。
在最新的rsa加密方法中,username還是以前一樣的處理;
password加密方式和原來有所不同:
2.1 先創(chuàng)建一個rsa公鑰,公鑰的兩個參數(shù)新浪微博都給了固定值,不過給的都是16進制的字符串,第一個是登錄第一步中的pubkey,第二個是js加密文件中的‘10001’。
這兩個值需要先從16進制轉(zhuǎn)換成10進制,不過也可以寫死在代碼里。這里就把10001直接寫死為65537。代碼如下:
[python] 
rsaPublickey = int(pubkey, 16)  
key = rsa.PublicKey(rsaPublickey, 65537) #創(chuàng)建公鑰  
message = str(servertime) + '\t' + str(nonce) + '\n' + str(password)#拼接明文 js加密文件中得到  
passwd = rsa.encrypt(message, key)#加密  
passwd = binascii.b2a_hex(passwd) #將加密信息轉(zhuǎn)換為16進制。  
2.2 請求通行證url:login_url =‘http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.4)’
需要發(fā)送的報頭信息
[python]  
postPara = {  
        'entry': 'weibo',  
        'gateway': '1',  
        'from': '',  
        'savestate': '7',  
        'userticket': '1',  
        'ssosimplelogin': '1',  
        'vsnf': '1',  
        'vsnval': '',  
        'su': encodedUserName,  
        'service': 'miniblog',  
        'servertime': serverTime,  
        'nonce': nonce,  
        'pwencode': 'rsa2',  
        'sp': encodedPassWord,  
        'encoding': 'UTF-8',  
        'prelt': '115',  
        'rsakv' : rsakv,  www.2cto.com
        'url': 'http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack',  
        'returntype': 'META'  
    }  
請求的內(nèi)容中添加了rsakv,將pwencode的值修改為rsa2,其他跟以前一致。
將參數(shù)組織好,POST請求。檢驗是否登錄成功,可以參考POST后得到的內(nèi)容中的一句 location.replace("http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack&retcode=101&reason=%B5%C7%C2%BC%C3%FB%BB%F2%C3%DC%C2%EB%B4%ED%CE%F3");
如果retcode=101則表示登錄失敗。登錄成功后結(jié)果與之類似,不過retcode的值是0。
3、登錄成功后,在body中的replace信息中的url就是我們下一步要使用的url。然后對上面的url使用GET方法來向服務(wù)器發(fā)請求,保存這次請求的Cookie信息,就是我們需要的登錄Cookie了。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
python機器登陸新浪微博抓取數(shù)據(jù)
模擬登錄新浪微博(Python)
模擬登錄-以新浪微博為例
python編寫的新浪微博爬蟲
python,web登錄
某校教務(wù)管理系統(tǒng)post分析,Python實現(xiàn)自動查詢成績并發(fā)送短信
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服