Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 亚洲欧美日韩一级特黄在线,韩国三级一线观看久,99在线免费播放

          整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          互聯(lián)網(wǎng)面試-https如何加密的

          互聯(lián)網(wǎng)面試-https如何加密的

          ttps如何加密的

          HTTPS介紹:
          HTTPS(Secure Hypertext Transfer Protocol)安全超文本傳輸協(xié)議 它是一個安全通信通道,它基于HTTP開發(fā),用于在客戶計算機和服務(wù)器之間交換信息。它使用安全套接字層(SSL)進行信息交換,簡單來說它是HTTP的安全版。 它是由Netscape開發(fā)并內(nèi)置于其瀏覽器中,使用SSL在發(fā)送方把原始數(shù)據(jù)進行加密,然后在接受方進行解密保證數(shù)據(jù)的安全性.然而,加密和解密過程需要耗費系統(tǒng)大量的開銷,嚴重降低機器的性能.
          HTTPS實際上就是SSL over HTTP,它使用默認端口443,而不是像HTTP那樣使用端口80來和TCP/IP進行通信。HTTPS協(xié)議使用SSL在發(fā)送方把原始數(shù)據(jù)進行加密,然 后在接受方進行解密,加密和解密需要發(fā)送方和接受方通過交換共知的密鑰來實現(xiàn),因此,所傳送的數(shù)據(jù)不容易被網(wǎng)絡(luò)黑客截獲和解密.然而,加密和解密過程需要耗費系統(tǒng)大量的開銷,嚴重降低機器的性能,相關(guān)測試數(shù)據(jù)表明使用HTTPS協(xié)議傳輸數(shù)據(jù)的工作效率只有使用HTTP協(xié)議傳輸?shù)氖种弧?/p>

          如何實現(xiàn)加密:(其實就是sssl的交互過程)
          HTTPS其實是有兩部分組成:HTTP + SSL / TLS,也就是在HTTP上又加了一層處理加密信息的模塊。服務(wù)端和客戶端的信息傳輸都會通過TLS進行加密,所以傳輸?shù)臄?shù)據(jù)都是加密后的數(shù)據(jù)。具體是如何進行加密,解密,驗證的

          參考:

          http://blog.csdn.net/binyao02123202/article/details/8049446
          http://www.codeceo.com/article/why-http-better-than-https.html

          http和https的區(qū)別

          1. https協(xié)議需要到ca申請證書,一般免費證書很少,需要交費.
          2. http是超文本傳輸協(xié)議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協(xié)議 http和https使用的是完全不同的連接方式用的端口也不一樣:前者是80,后者是443。
          3. http的連接很簡單,是無狀態(tài)的 HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸、身份認證的網(wǎng)絡(luò)協(xié)議 要比http協(xié)議安全 HTTPS解決的問題.

          標(biāo)站點:

          aHR0cHMlM0EvL2subS5hdXRvaG9tZS5jb20uY24vZGV0YWlsL3NoYXJlXzAxZG1xeThmYTE2OHZrYWU5aDYwdmcwMDAwLmh0bWw=

          該地址經(jīng)過base64加密,可以通過如下地址進行解密:

          https://base64.supfree.net
          

          準(zhǔn)備工具:

          chome瀏覽器,python3.7語言環(huán)境,pycharm,百度字體編輯器:http://fontstore.baidu.com/static/editor/index.html
          

          破解方法:

          1、打開chrome瀏覽器,在瀏覽器地址欄中輸入目標(biāo)地址,打開網(wǎng)頁后,在頁面中點擊鼠標(biāo)右鍵,選擇檢查,可以看到相關(guān)文字已被加密。

          文字被加密

          2、可以通過復(fù)制,來驗證文字是否被加密。如復(fù)制:

          老朋友的推薦

          復(fù)制出的文字為:

          老朋友?推薦

          3、此類現(xiàn)象為文字被CSS樣式加密,破解步驟如下:

          1、通過瀏覽器開發(fā)者模式,找到頁面中文字所使用的css樣式
          2、通過抓包等方法找到加載的css文件,通過正則表達式取出字體文件URL
          3、通過百度字體編輯器解析woff文件:http://fontstore.baidu.com/static/editor/index.html
          4、使用fontTools處理字體文件,得出對應(yīng)關(guān)系
          5、通過對應(yīng)關(guān)系解析加密字體
          

          4、首先使用python的request模塊請求該頁面,通過正則表達式獲取字體文件URL,請求該URL,獲取到字體文件,寫入到本地。

          5、通過百度字體編輯器,解析ttf文件

          6、通過百度字體編輯器,可以看到,"的"對應(yīng)的字體編碼為"$EC2A",接下來通過python下的fontTools模塊讀取該TTF文件,并建立文字對應(yīng)關(guān)系,保存為字典。

          7、通過for循環(huán)遍歷該文字對應(yīng)關(guān)系字典,對原網(wǎng)頁返回進行替換,即可得到正常數(shù)據(jù)。

          老朋友的推薦,去看了一幾個牌子,頭都看暈了,沒有結(jié)果,決定不了買哪個牌子,九了女兒意見,準(zhǔn)備在榮威里面選盤款。性價上最高的就是I5了,看中這款的原因,并不是因為配置高,也不是養(yǎng)力強,而是囊中羞澀,預(yù)算控有那么電啊?,而榮威這個品牌過硬,質(zhì)量可靠,故障率低,朋友買了都說挺一的。暫時沒有,還是覺外有點說不過去??!買車看車子做這個決定,是和女兒共同商量決定的,我看中的是這個牌子的知名度,品質(zhì)這些方面,女兒的話是喜歡這款車型的十觀,女孩子嘛,都是十貌協(xié)會,兩廂車上較炫酷,十形時尚養(yǎng)感,適合年輕妹子。女兒盤看就中意了。

          代碼參考:

          https://github.com/freedom-wy/js-reverse/tree/master/autohome/koubei
          

          歡迎交流,一起學(xué)習(xí),一起進步。

          另外,我在慕課網(wǎng)上主講課程:

          《Python爬蟲工程師必學(xué)——App數(shù)據(jù)抓取實戰(zhàn)》,還請各位大神多多支持。課程地址:

          理, 參考python Selenium.

          Rust 對應(yīng)的支持庫: thirtyfour.

          thirtyfour 是一個用于在 Rust 中使用 WebDriver / Selenium 生態(tài)系統(tǒng)自動化 Web 瀏覽器的 crate。它還為 Chrome DevTools 協(xié)議提供了一些支持,Cypress 和 Playwright 等流行框架都使用了該協(xié)議。

          它旨在成為一個 "batteries-included "的框架,用于所有與 Web 瀏覽器自動化相關(guān)的事物,尤其是 Web 應(yīng)用程序的自動化測試

          劃重點, 2個部分.

          1. 操作web頁面登錄處理.
          2. 帶密碼控件的輸入問題處理.

          本次實驗采用chrome瀏覽器,windows 系統(tǒng)下.
          請先下載chrome瀏覽器的webdriver. 注意版本一定要跟當(dāng)前chrome瀏覽器版本一致.

          https://chromedriver.chromium.org/downloads

          Step 1:

          手動啟動 chromedriver.exe 或者自動啟動,代碼如下:
          將chromedriver.exe復(fù)制到當(dāng)前項目目錄.

          let dir=current_dir().unwrap();
          let exe=dir.join("chromedriver.exe");
          Command::new(exe)
              .spawn()
              .expect("啟動[chromedriver.exe]失敗!");

          Step2:

          連接webseriver. webservier將監(jiān)聽在本機9515端口.

          let username="test0000";
          let password="test0001";
          // caps 支持啟動參數(shù). 具體請參考api.
          let mut caps=DesiredCapabilities::chrome();
          
          // 連接到web driver.
          let driver=WebDriver::new("http://127.0.0.1:9515", caps).await?;
          /// 載入登錄頁面.
          driver.goto("https://login.xxxx.xxxx.com/cse/#/login").await?;
          /// 找到輸入手機號的地方. xpath, input輸入框,提示符為請輸入手機號.
          let elem_phone=driver.find(By::XPath("//input[@placeholder='請輸入手機號']")).await?;
          /// 輸入賬號.
          elem_phone.send_keys(username).await?;
          ///找到密碼輸入框. id是login-pwd. 通過F12 查找元素去找規(guī)則.
          let elem_password=driver.find(By::Id("login-pwd")).await?
           /// 輸入密碼.
          elem_password.send_keys(password).await?;
          /// 找到登錄按鈕.
          let login_btn=driver.find(By::ClassName("ui-login-from__btn")).await?;
          // 點擊登錄按鈕.
          login_btn.click().await?;
          
           

          通過查找html元素找到元素的匹配規(guī)則,再做操作.

          API 參考文檔:

          https://stevepryde.github.io/thirtyfour/introduction.html

          可能遇到的問題:

          1. 元素不可點擊, 元素處于不顯示狀態(tài),點擊無用.檢查是否找對了元素. 或者元素處于被隱藏狀態(tài). display="none"
          2. 操作太快,元素還沒呈現(xiàn)出來就去查找,這個時候有2個解決方案.1

          固定時間等待.

          //等待3秒.
          sleep(Duration::from_secs(3)).await;
          

          查詢只到某個元素出現(xiàn),看以下代碼,這個地方會阻塞.

          // 等待,只到元素出現(xiàn)或者超時為止. 
          let login_btn=driver.find(By::ClassName("ui-login-from__btn")).first().await?;
           
          1. send_keys 輸入不起作用.看下面.

          帶密碼控件的輸入怎么辦?

          一些對安全性要求比較高的網(wǎng)站比如網(wǎng)銀會對密碼輸入采用專用控件. 甚至對輸入的鍵碼進行了加密,

          這種情況下send_keys是不會起作用的,可行的解決方案是采用驅(qū)動級的虛擬鍵盤,模擬鍵盤操作.來實現(xiàn)功能.

          本文采用DD虛擬鍵盤來實現(xiàn).

          通過rust ffi接口,調(diào)用DD虛擬鍵盤的DLL.

          DD虛擬鍵盤項目地址:

          https://github.com/ddxoft/master

          封裝示例代碼如下.

          /// DD 虛擬鍵盤.
          fn load_dd_virtual_kb()->Result<Library, Box<dyn std::error::Error>>  {
              
              unsafe {
                  let lib=libloading::Library::new("dd40605x64.dll")?;
                  return Ok(lib) ;
              }
          
          }
          
          fn dd_btn(lib:&Library, btn: i32) -> Result<(), Box<dyn std::error::Error>>{
              unsafe {
                  let func: libloading::Symbol<unsafe extern fn(i32)>=lib.get(b"DD_btn")?;
                  func(btn);
                  Ok(())
              }
          }
          // 注意,rust 字符串與c str的內(nèi)存布局和結(jié)束符是不同的.
          fn dd_press_key(lib:&Library, key:&str) -> Result<(), Box<dyn std::error::Error>> {
              unsafe {
                  let v=CString::new(key).unwrap();
                  let func: libloading::Symbol<unsafe extern fn(*const c_char)>=lib.get(b"DD_str")?;
                  // info!("Press Key:{}", key);
                  let c_pr: *const c_char=v.as_ptr(); 
                  func(c_pr);
                  Ok(())
              }
          }
          // 慢慢按 1秒1個
          async fn dd_press_key_slow(lib:&Library, keys:&str) -> Result<(), Box<dyn std::error::Error>> {
              
              for c in keys.chars() {
                  let r=dd_press_key(&lib, format!("{}", c).as_str())?;
                  sleep(Duration::from_millis(1000)).await;
              }
          
              Ok(())
          }


          則上面輸入密碼框的做法是.


          主站蜘蛛池模板: 一区二区三区波多野结衣| 亚洲国产成人精品久久久国产成人一区二区三区综 | 日韩一区二区三区电影在线观看| 国产一区二区三区乱码| 精品国产一区二区三区久久| 亚洲AV综合色区无码一区爱AV| 91在线一区二区| 成人精品一区二区三区校园激情 | 大香伊蕉日本一区二区| 日本视频一区在线观看免费| 国模吧一区二区三区精品视频| 色欲AV无码一区二区三区| 久久精品国产一区二区电影| 91在线一区二区| 日韩一区二区在线观看视频| 日韩一区二区三区电影在线观看| 波多野结衣一区视频在线| 一区二区视频免费观看| 国产精品美女一区二区| 国产福利一区二区三区视频在线| 久久国产免费一区二区三区| 国产成人精品无码一区二区三区| 亚洲欧美日韩一区二区三区 | 久久国产一区二区| 国产在线无码视频一区二区三区| 亚洲韩国精品无码一区二区三区 | 久久久久久人妻一区二区三区| 一区二区三区四区精品| 一区 二区 三区 中文字幕| 一区二区三区伦理高清| 中文字幕日韩人妻不卡一区| 中文字幕人妻丝袜乱一区三区 | 国产伦精品一区二区三区视频金莲 | 亚洲午夜精品一区二区| 日韩在线一区视频| 国产精品成人一区无码| 亚洲美女高清一区二区三区| 国产美女口爆吞精一区二区| 高清国产AV一区二区三区| 麻豆文化传媒精品一区二区| 国产av一区最新精品|