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 进行一个跳转
跳转到这里
然后向下翻到这里
看到了这个