当前位置: 首页 > news >正文

前端加密与Python逆向实战:HMAC-SHA1算法分析与数据抓取

引言

在现代Web开发中,前端加密技术被广泛应用于API接口的安全防护。本文将深入分析一个基于CryptoJS的HMAC-SHA1加密案例,并展示如何通过Python完整还原加密过程,实现自动化数据抓取。

一、JavaScript加密机制解析

1. 核心加密函数分析

const CryptoJS = require('crypto-js')

function decrypt123(){
    // 获取当前时间戳
    var f = (new Date)['getTime']()
    
    // 将时间戳进行Base64编码
    tt = btoa(f)
    
    // 使用HMAC-SHA1算法生成签名
    m = CryptoJS["HmacSHA1"]('9527' + f, "xxxooo")["toString"]()
    
    return {"m": m, "tt": tt}
}

加密流程解析

  1. 时间戳获取:使用Date.getTime()获取当前毫秒级时间戳

  2. Base64编码:通过btoa()将时间戳编码为Base64字符串(tt参数)

  3. HMAC-SHA1签名:使用固定字符串"9527"拼接时间戳,以"xxxooo"为密钥生成签名(m参数)

2. 加密参数特点

参数 生成方式 作用
tt 时间戳Base64 请求时效验证
m HMAC-SHA1签名 请求合法性验证

二、Python逆向实现

1. 环境准备

import requests
import json
import execjs
import base64
import hmac
import hashlib

2. JavaScript执行环境配置

with open('demo.js', 'r', encoding="utf-8") as f:
    js_code = f.read()

ctx = execjs.compile(js_code)

3. 纯Python实现加密

def python_decrypt123():
    # 获取时间戳
    timestamp = int(time.time() * 1000)
    
    # Base64编码
    tt = base64.b64encode

相关文章:

  • OpenEuler部署Flink 1.19.2完全分布式集群
  • 极氪汽车云原生架构落地实践
  • 交换机工作在OSI模型的哪一层?
  • 比较与分析敏捷开发方法:XP、Scrum、FDD等的特点与适用场景
  • 计算机网络 3-2 数据链路层(流量控制与可靠传输机制)
  • uniapp App页面通过 web-view 调用网页内方法
  • 协方差相关问题
  • 前后端接口参数详解与 Mock 配置指南【大模型总结】
  • 区块链知识点4
  • 学透Spring Boot — 015. 自废武功——关闭自动配置
  • Ubunut18.04 离线安装MySQL 5.7.35
  • Vue3 路由权限管理:基于角色的路由生成与访问控制
  • YOLOv1学习笔记
  • 2. Qt界面文件原理
  • Java面向对象编程详解
  • VUE中的CompositionAPI绑定
  • leetcode274.H指数
  • Java 知识点汇总(三)
  • Android Compose 中获取和使用 Context 的完整指南
  • 数字人分身源码搭建:支持OEM
  • 只有做推广才能搜索到网站吗/快速排名优化推广排名
  • 网站佣金怎么做会计分录/做网站找哪家好
  • 中国建设网官方网站硅灰/百度推广投诉电话
  • 自己做短视频的网站/网站统计数据分析
  • 为博彩做网站日入两万/网络服务合同纠纷
  • 外综服务平台哪里做网站/企业seo关键词优化