JS逆向基础( AES 解密密文WordArray和Uint8Array实战②)

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(压缩后的二进制数据),“蓬松的羽绒服” 就是最终的字符串。

关键步骤:

  1. 压缩:原始字符串 → 变成二进制数据(Uint8Array),体积变小(比如 “abcdef” 压缩后可能只有几个字节)。
  2. 解压缩:压缩后的 Uint8Array → 还原成原来的二进制数据(还是 Uint8Array,但体积变大)。
  3. 转字符串:用 TextDecoder 把二进制数据翻译成人类能看懂的文字。

为什么要这么做?
因为字符串直接传输 / 存储体积大,压缩后能节省空间和流量,就像邮件附件会先压缩再发送一样。

AES 算法就像一台「特殊的榨汁机」,它的进料口和出料口只认「特定规格的水果盒」(WordArray),而不认散装水果(字符串)或其他盒子(如 Uint8Array)。不是不能用其他格式,而是加密库为了方便用户,自动帮你做了格式转换,让你不用关心底层细节。

不是 AES 算法只能输出 WordArray,而是 加密库为了适配 AES 的底层计算逻辑,选择用 WordArray 作为中间格式,让整个加密流程更顺畅。就像你用洗衣机时,衣服要放进「洗衣机专用洗衣袋」(WordArray),而不是直接扔进去 —— 不是洗衣机不能洗散装衣服,而是专用袋子能让洗涤更高效、更安全。

整个流程是:

  1. 使用 AES 解密密文,得到 WordArray 对象。

  2. 将 WordArray 转换为 Uint8Array。

  3. 解压缩 Uint8Array 数据,得到字符串。

  4. 将字符串解析为 JSON 对象。

  5. 如果过程中发生错误,捕获并处理异常。

开始实战

抖音商品销量排行榜_抖音高佣爆款商品销量排行榜 - 蝉妈妈数据

然后查看响应

然后搜素is_encrypt

然后鼠标移动到ZP  点击

[[FunctionLocation]]:app.eefc8413.js:1 进行一个跳转

跳转到这里

然后向下翻到这里

看到了这个

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/92668.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/92668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文阅读:《针对多目标优化和应用的 NSGA-II 综述》一些关于优化算法的简介

前言 提醒: 文章内容为方便作者自己后日复习与查阅而进行的书写与发布,其中引用内容都会使用链接表明出处(如有侵权问题,请及时联系)。 其中内容多为一次书写,缺少检查与订正,如有问题或其他拓展…

Elasticsearch(ES)安装

docker下安装ES 拉取镜像docker pull elasticsearch:7.4.0 创建文件夹 权限赋值 chmod -R 777 /usr/local/docker/es 创建配置 #可访问IP http.host: 0.0.0.0 # 跨域 http.cors.enabled: true http.cors.allow-origin: "*" 编写脚本并赋权 首先先返回上一级目录&…

Pycharm、Python安装及配置小白教程

本篇博客主要介绍了如何使用工具软件快速安装Pycharm和Python并完成基础配置。 目录 一、Python与Pycharm是什么? 二、安装工具软件 三、安装Python 四、安装Pycharm 五、配置Pycharm 1. 基础设置 2. 配置解释器 一、Python与Pycharm是什么? …

Redis数据库入门教程

Redis(Remote Dictionary Server)是一个开源的、基于内存的高性能键值存储系统,它可以用作数据库、缓存和消息中间件。本教程将带你从零开始全面学习Redis,涵盖基础概念、安装配置、数据结构、持久化机制以及与Python的交互等内容…

工业仪表识别(一)环境安装

仪表识别环境安装 1.cuda cuda 11.8 intall(cuda11.8、cuda12.6按照需求安装) ref: https://developer.nvidia.com/cuda-11-8-0-download-archive?target_osLinux&target_archx86_64&DistributionUbuntu&target_vers…

闲庭信步使用图像验证平台加速FPGA的开发:第三十四课——车牌识别的FPGA实现(6)叠加车牌识别的信息

(本系列只需要modelsim即可完成数字图像的处理,每个工程都搭建了全自动化的仿真环境,只需要双击top_tb.bat文件就可以完成整个的仿真,大大降低了初学者的门槛!!!!如需要该系列的工程…

Windows上用于跨平台开发的环境工具

1. MSYS2(Minimal SYStem 2) 一款模拟Unix环境的软件,可以执行unix命令。通过pacman管理工具,类似Ubuntu上apt-get,RedHat中的yum。 MSYS2最大好处就是能够在Windows上轻松编译一些由Unix环境工具链开发的工程&#…

【硬件-笔试面试题】硬件/电子工程师,笔试面试题-15,(知识点:DC-DC电源,BUCK电路,铁损,铜损)

目录 1、题目 2、解答 选项 A 选项 B 选项 C 选项 D 3、相关知识点 一、纹波 二、感量(电感量L) 三、开关频率f 四、铁损 五、铜损 题目汇总版: 【硬件-笔试面试题】硬件/电子工程师,笔试面试题汇总版,持…

Ethereum: 从 1e+21 到千枚以太币:解密 Geth 控制台的余额查询

大家好今天,我们来聊一个新手在接触以太坊节点时经常会遇到的场景。想象一下,我们成功运行了一个私有以太坊节点,并尝试查询一个账户的余额,然后我们看到了这样一个返回结果:1e21。 这是什么意思?是出错了&…

2025最新软件测试面试八股文(含答案+文档)

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 1、什么是POM,为什么要使用它?POM是Page Object Model的简称,它是一种设计思想,而不是框架。大概的意思是&#xff…

表格数据处理-TabNet模型使用说明(模型构建+SHAP)

一、模型介绍 论文为《TabNet: Attentive Interpretable Tabular Learning》发表于2021年,属于Google Cloud AI。该研究针对表格数据提出了一种新的深度神经网络(DNN)架构TabNet,旨在解决传统深度学习在表格数据上表现不如决策树模…

数据集成难在哪?制造企业该怎么做?

目录 一、为什么你的数据集成总失败? 1.数据没有统一标准 2.数据 “断点多”,打通成本高 3.数据 “用不起来”,价值难落地 二、数据集成的正确做法是什么? 第一步:明确 “集成为了谁”— 用业务目标倒推数据需求…

Datawhale AI数据分析 作业2

学生考试表现影响因素数据集第一步:数据概览与清洗Prompt 1:加载StudentPerformanceFactors.csv文件,并显示前5行数据以及各列的数据类型和非空值数量,检查是否存在缺失值。处理缺失值是数据预处理的重要一步。对于您提到的缺失值&#xff1a…

Flowable 与 Spring Boot 深度集成:从环境搭建到平台构建

在前三篇文章中,我们依次认识了 Flowable 的基础概念、用 Modeler 设计流程,以及通过 API 控制流程运行。但在实际项目中,我们更需要将 Flowable 与 Spring Boot 深度融合,构建完整的工作流平台。本文将从环境配置、设计器集成、权…

Jenkins最新版本的安装以及集成Allure生成测试报告

目录 Jenkins的安装 将上面的目录添加到系统环境变量中 为Jenkins配置密码 创建一个用户,用于登录jenkins 为Jenkins安装Allure插件 几个大坑 使用jenkins集成python测试项目 Jenkins的安装 Jenkins官方网址 Jenkins 点击download 点击 past Release选择你想要下载…

Vue3 面试题及详细答案120道 (1-15 )

《前后端面试题》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs&…

基于 GitLab 实践敏捷开发

在软件开发中,**基于 GitLab 实践敏捷开发**,并建立一套**规范的日常管理流程**,不仅可以提升团队协作效率,还能确保平台持续向好迭代、性能稳步提升。以下是一个完整的实践方案,适用于中小型团队或中大型项目&#xf…

黑马点评使用Apifox导入接口测试合集(持续更新、详细图解)

目录 一、前言 二、更新店铺 三、添加秒杀券 四、秒杀下单和秒杀下单user2 一、前言 本博客将持续更新记录黑马点评所有接口测试的导入(学到哪更新到哪),以此博客为完整导入接口测试的合集。第一次在黑马点评项目使用Apifox进行接口测试直接先看我前面的博客&a…

MYOJ_10583:CSP初赛题单7:计算机常识综合练习

更多初赛题单请参见题目整理CSP初赛题目整理题单,谢谢。 注:阅读此题单时建议先看1~5,再试着自己做。 题目描述 1. [J-2010-6][S-2010-6]提出“存储程序”的计算机工作原理的是( )。 A. 克劳德香农 B. 戈登摩尔 C.…

代码随想录day22回溯算法1

文章目录77. 组合216.组合总和III17. 电话号码的字母组合77. 组合 题目链接 文章讲解 class Solution { public:vector<vector<int>> res; // 存储所有的组合vector<int> path; // 当前正在构建的组合// 回溯算法void solve(int n, int k, int st…