當前位置:首頁 » 文件管理 » pako解壓

pako解壓

發布時間: 2024-03-16 00:06:24

『壹』 怎麼樣python爬蟲進行此網站爬取

  • 加密的,解密方法在JS裡面可以弄出來。

  • 首先要AES解密,可以【Python:import Crypto.Cipher.AES】包,解密mode是CFB,seed是"userId:"+uid+":seed"的SHA256值,解密的key是seed[0:24],iv是seed[len(seed)-16:]。

  • 如果沒有登錄,uid就是用的"anyone",這時候的seed是"",也就是key為"61581AF471B166682A37EFE6",iv為"C8F203FCA312AAAB"。

  • 解密後文件是壓縮過的,解壓即可得到一個JSON。這部分解壓我沒仔細看他的演算法,好像是gzip,直接用【Python:import gzip】解壓有點出錯,可能沒用對或者不是這個演算法,你在研究一下。第二種投機的方法就是,可以通過【Python:import execjs】直接調用他的pako.js文件的JS的inflate()函數來解壓這塊。JS代碼混淆後看起來是非常難懂的,使用這種做法可以不用太看懂加密的演算法,效率當然寫Python實現這個解密演算法低1點咯。

  • 最後的JSON再用【Python:import demjson】解析,text的value就是文檔。

『貳』 2020-11-18 gzip 前後端數據傳輸壓縮『pako』

 let zlib = require("pako"); //引入

//壓縮方法 用來將大數據壓縮後在傳給後端

Vue.prototype.zip = function (str) {

            //encodeURIComponent 將字元串作為URI組件進行編碼

            //zlib.gzip() 將編碼後的數據進行壓縮,string類型

            let binaryString = zlib.gzip(encodeURIComponent(str), {

                to: "string"

            });

            //btoa()將壓縮後的數據變成base64格式

            return btoa(binaryString);

        },

//解壓縮方法,前端接受後端大數據後,先解壓縮在進行後面的邏輯

        Vue.prototype.unzip = function (b64Data) {

            //atob()將base64格式數據轉化成壓縮數據

            let strData = atob(b64Data);

            //split()方法用於把一個字元串分割成字元串數組

            //通過map函數進行遍歷,並對每一個進行 Unicode 編碼

            let charData = strData.split("").map(function (x) {

                //charCodeAt() 方法可返回指定位置的字元的 Unicode 編碼

                return x.charCodeAt(0);

            });

            //Uint8Array 8 位無符號整數值的類型化數組

            let binData = new Uint8Array(charData);

            // console.log(binData);

            //解壓縮 充氣

            let data = zlib.inflate(binData);

            //fromCharCode 將 Unicode 編碼轉為一個字元:

            // console.log(data);

           //分片解壓縮,防止數據量過大,瀏覽器棧溢出報錯

            let chunk = 8 * 1024;

            let res = "";

            let dataLength = data.length / chunk;

            let i;

            for (i = 0; i < dataLength; i++) {

                res += String.fromCharCode.apply(

                    null,

                    data.slice(i * chunk, (i + 1) * chunk)

                );

            }

            res += String.fromCharCode.apply(null, data.slice(i * chunk));

            //decodeURIComponent() 對 encodeURIComponent() 函數編碼的 URI 進行解碼

            strData = res;

            return decodeURIComponent(strData);

        },

2021-02-20:

    問題更新:最新客戶在使用的過程中,發現頁面展示會出現莫名其妙的「+」。

    對此,我們進行了一番查詢,發現問題原因如下:後端在將數據壓縮的過程中,正常情況下會將數據中的「+」號編碼成%2B,同時會將「 空格 」編碼成「%20」,那麼前端接收以後,就可以進行解碼。

    但是,我們發現數據中的「+」會被正常編碼,但是空格卻不會,而是編碼成了「+」.那麼,前端接收以後在解碼的過程中,就無法對「+」進行解碼,就會造成顯示和真實數據不一致。

解決方案:後端在壓縮完成後,再將所有的「+」編碼替換成「%20」,這樣,在前端接收數據後,就能將數據正常解碼並顯示。

『叄』 vue 基於pako.js實現gzip的壓縮和解壓功能

後台返回的數據是gzip 加密過的,需要解壓數據,如下圖所大型行示:

我們需要上圖標出來的租念加密滾嘩數據進行解密出來
1 安裝 :

2 使用

熱點內容
王牌競速如何找到最開始的伺服器 發布:2024-04-28 14:53:09 瀏覽:403
airpod安卓怎麼切換下一曲 發布:2024-04-28 14:23:03 瀏覽:835
百姓網源碼 發布:2024-04-28 14:18:56 瀏覽:893
war包防止反編譯 發布:2024-04-28 14:17:16 瀏覽:328
linuxll命令 發布:2024-04-28 14:16:27 瀏覽:860
阿里雲伺服器增強安全配置取消 發布:2024-04-28 14:16:12 瀏覽:867
war3存儲空間不足 發布:2024-04-28 13:20:54 瀏覽:949
微信密碼已經忘記了如何找回 發布:2024-04-28 11:54:13 瀏覽:306
騰訊雲伺服器可以備案幾個網站 發布:2024-04-28 11:54:12 瀏覽:458
影響編譯速度的因素有哪些 發布:2024-04-28 11:53:58 瀏覽:255