1. Uint8Array 就像「快遞柜」
- 每個格子固定放「1 瓶飲料」(1 字節 = 8 位,范圍 0-255 就像飲料編號)
- 比如裝了 3 瓶:可樂(編號 255)、雪碧(10)、礦泉水(0)
- 這是超市通用的標準貨架,任何工具(JS 內置功能)都認識這種擺放方式
- 用途:運輸、存儲所有二進制東西(圖片、文件、網絡數據等)
2. WordArray 就像「加密專用禮盒」
- 是某個品牌(比如 CryptoJS)自己設計的盒子,每個盒子固定裝「4 瓶飲料」(4 字節 = 32 位)
- 比如要加密 "hello",先把它拆成飲料,再裝進這種 4 瓶裝的禮盒
- 只有這個品牌的工具(CryptoJS 的加密 / 解密函數)才方便處理這種禮盒
- 要想讓別人(其他 JS 功能)看懂,得先把禮盒拆開,把飲料倒回普通冰柜(轉成 Uint8Array 或字符串)
-
1 字節:能表示的范圍很小,比如可以存一個英文字母(如 'a')、一個數字(如 '5'),或者一個簡單的符號(如 '!')。
舉例:字母 “a” 在計算機中就用 1 字節存儲(二進制是01100001
)。 -
4 字節:是 1 字節的 4 倍(32 個二進制位),能表示更大的范圍。
比如可以存一個中文漢字(大部分中文用 2 字節,但有些編碼下可能用 4 字節)、一個較大的整數(比如 123456),或者一段簡短的指令。
舉例:整數 “100000” 在計算機中可能用 4 字節存儲。
因為 1 字節 = 8 個二進制位,最大能表示的數就是 2? - 1 = 255(二進制是 11111111),最小是 0(二進制 00000000)。
把一串被壓縮過的二進制數據(Uint8Array)還原成原來的字符串。
舉個生活例子:
就像把一件羽絨服壓縮成小方塊(節省空間),現在需要解開壓縮,讓它變回原來蓬松的樣子。這里的 “小方塊” 就是 Uint8Array(壓縮后的二進制數據),“蓬松的羽絨服” 就是最終的字符串。
關鍵步驟:
- 壓縮:原始字符串 → 變成二進制數據(Uint8Array),體積變小(比如 “abcdef” 壓縮后可能只有幾個字節)。
- 解壓縮:壓縮后的 Uint8Array → 還原成原來的二進制數據(還是 Uint8Array,但體積變大)。
- 轉字符串:用
TextDecoder
把二進制數據翻譯成人類能看懂的文字。
為什么要這么做?
因為字符串直接傳輸 / 存儲體積大,壓縮后能節省空間和流量,就像郵件附件會先壓縮再發送一樣。
AES 算法就像一臺「特殊的榨汁機」,它的進料口和出料口只認「特定規格的水果盒」(WordArray),而不認散裝水果(字符串)或其他盒子(如 Uint8Array)。不是不能用其他格式,而是加密庫為了方便用戶,自動幫你做了格式轉換,讓你不用關心底層細節。
不是 AES 算法只能輸出 WordArray,而是 加密庫為了適配 AES 的底層計算邏輯,選擇用 WordArray 作為中間格式,讓整個加密流程更順暢。就像你用洗衣機時,衣服要放進「洗衣機專用洗衣袋」(WordArray),而不是直接扔進去 —— 不是洗衣機不能洗散裝衣服,而是專用袋子能讓洗滌更高效、更安全。
整個流程是:
-
使用 AES 解密密文,得到 WordArray 對象。
-
將 WordArray 轉換為 Uint8Array。
-
解壓縮 Uint8Array 數據,得到字符串。
-
將字符串解析為 JSON 對象。
-
如果過程中發生錯誤,捕獲并處理異常。
開始實戰
抖音商品銷量排行榜_抖音高傭爆款商品銷量排行榜 - 蟬媽媽數據
然后查看響應
然后搜素is_encrypt
然后鼠標移動到ZP 點擊
[[FunctionLocation]]:app.eefc8413.js:1 進行一個跳轉
跳轉到這里
然后向下翻到這里
看到了這個