爬虫逆向加密技术详解之消息摘要算法(哈希算法):SM3加密

Python实现SM3算法 本文详细介绍了 SM3 算法的原理和 Python 实现,并提供了一个基于 SM3 的数字签名验证示例。SM3 算法在中国的密码标准中起着重要作用,其高效性和安全性使其成为密码系统中数据完整性和认证的重要工具。掌握 SM3 算法的实现和应用,可以帮助更好地理解和使用现代密码学技术。 阅读详情

一、SM3介绍

SM3是由中国国家密码管理局(GM/T 0004-2012)发布的密码散列算法,属于哈希函数家族。它广泛应用于数字签名、消息认证及数据完整性校验等领域,设计符合国家安全标准,具备抗碰撞性和不可逆性。

二、SM3的特点

  • 抗碰撞性‌:基于Merkle-Damgård结构,通过复杂的布尔函数和模运算设计,SM3能够有效抵御碰撞攻击和第二原像攻击。其安全性与SHA-256相当,但算法设计更贴合中国密码学标准。
  • 固定输出‌:输出长度为256位(32字节)。
  • 高效计算‌:采用分组密码结构,通过消息扩展和迭代压缩实现数据混淆与扩散,兼顾安全性和计算效率。
  • 国密标准‌:中国商用密码体系的核心算法之一。

三、如何一眼识别SM3加密?

3.1 长度判断

64位(64个字符‌)十六进制字符串:可能是SM3加密

3.2 验证字符集

  • 仅包含十六进制字符:确保哈希值只包含 0-9 和 a-f(a、b、c、d、e、f)。注意事项:哈希密文虽然是小写,但是别人也许会在生成后用.toUpperCase() 全部转大写。
  • 无其他字符:如g-z、空格、特殊符号等。

3.3 搜索初始化变量

SM3初始化使用8个32位常量,初始值如下(十六进制):

IV = [
  0x7380166F, 0x4914B2B9, 0x172442D7, 0xDA8A0600,
  0xA96F30BC, 0x163138AA, 0xE38DEE4D, 0xB0FB0E4E
]

小技巧:可以将SM3初始化变量作为 SM3的特征值,没有魔改的情况下搜索十六进制值,如果搜不到,复制去控制台输出转换后搜索。 如果搜到了,点击进入函数内部,打上断点,重新触发断点,从堆栈(Call Stack,堆栈运行逻辑从下往上) ,从上往下依次查看哪里调用了特征值,就可以找到加密位置。

3.4 库函数或自定义函数

如果代码中使用了SM3相关的库(如sm-crypto)或函数名包含SM3,可确认是SM3哈希。

四、实现SM3加密

4.1 sm-crypto实现SM3加密

使用sm-crypto库实现示例:

const sm3 = require('sm-crypto').sm3;

// 待哈希的字符串
const input = "123456";

// 计算SM3哈希值(自动UTF-8编码)
const hashHex = sm3(input);

console.log("密文:", hashHex);
console.log("密文长度:", hashHex.length);

运行结果:

密文: 207cf410532f92a47dee245ce9b11ff71f578ebd763eb3bbea44ebd043d018fb
密文长度: 64

4.2 Python实现SM3加密

确保已经安装了 gmssl 库,可以使用以下命令进行安装:

pip install gmssl

gmssl 库实现SM3加密:

from gmssl import sm3, func

# 待哈希的字符串
input_str = "123456"
# 将字符串编码为字节类型
input_bytes = input_str.encode()
# 计算 SM3 哈希值
hash_hex = sm3.sm3_hash(func.bytes_to_list(input_bytes))

print("密文:", hash_hex)
print("密文长度:", len(hash_hex))

运行结果:

密文: 207cf410532f92a47dee245ce9b11ff71f578ebd763eb3bbea44ebd043d018fb
密文长度: 64
SM3哈希算法逆向实战:从原理到爬虫签名破解 哈希算法作为密码学基础,通过单向函数将任意长度数据映射为固定长度摘要,确保数据完整性与来源认证。其核心原理基于压缩函数迭代,具备抗碰撞性与雪崩效应,在网络安全中用于数字签名与防篡改。在工程实践中,哈希签名广泛应用于API接口认证与数据校验场景。本文聚焦国密SM3算法,详解其消息填充、扩展与迭代压缩流程,并针对爬虫逆向场景,提供通过搜索特征常量、拦截标准库调用、分析参数拼接逻辑等具体方法,定位签名算法与密钥,最终实现本地复现与自动化集成。 阅读详情

相关推荐

抖音a_bogus参数逆向实战:从零到一搞定Python爬虫加密参数

本文详细解析了抖音a_bogus参数的逆向过程,从环境准备到Python爬虫实现,帮助开发者掌握加密参数的生成逻辑。通过逆向脚本分析,读者将学习如何应对抖音的反爬机制,提升数据采集效率。

onion的博客 1108

python3使用国密SM3加密

SM3算法是一种国产密码散列函数标准,与MD5、SHA1、SHA256类似。

出去玩去的博客 4147

逆向实战:Python爬虫破解SM3/SM4国密算法加密接口

在数据采集与网络爬虫开发中,加密技术是保障数据传输安全的核心手段。对称加密与非对称加密是两种基础加密原理,其中对称加密算法如AES因其高效性广泛应用于接口数据保护。国密算法作为我国自主设计的密码标准,其SM4对称加密与SM3哈希算法在金融、政务等领域的应用日益增多,为爬虫工程师带来了新的技术挑战。理解加密原理与逆向工程思维,能帮助开发者应对数据接口的加密保护,实现自动化数据采集。本文通过一个典型实战案例,详细解析了如何从网络抓包、前端JavaScript逆向分析到Python代码复现,完整还原基于SM3和S

weixin_34161029的博客 337

国密算法 SM3 消息摘要 杂凑算法 哈希函数 散列函数 python实现完整代码

国密算法 SM2 公钥加密 非对称加密 数字签名 密钥协商 python实现完整代码 依次分享完SM2和SM4的python实现代码,今天分享SM3

qq_43339242的博客 1万+

逆向某音a_bogus参数:突破JSVMP与魔改SM3的完整实战解析

在Web安全与数据采集领域,前端反爬技术日益复杂,其中代码混淆与加密签名是核心防御手段。其原理在于通过变形和加密逻辑,增加核心代码的逆向分析难度,从而保护接口安全。这类技术的工程价值在于平衡用户体验与数据安全,广泛应用于内容平台、金融科技等需要防范自动化请求的场景。本文以某音Web端的a_bogus签名参数为例,深入剖析其由JSVMP(JavaScript Virtual Machine Protection)混淆构建的虚拟机执行环境,并详细还原了其中被魔改的SM3哈希算法的具体实现。通过动态调试、执行流追

weixin_29324401的博客 897

Python逆向163邮箱SM4加密登录:从抓包到完整爬虫实现

在Web数据采集和自动化测试领域,接口安全与反爬机制是开发者常面临的核心挑战。现代Web应用普遍采用前端加密技术保护敏感数据传输,其基本原理是将用户输入的明文(如密码)在客户端通过特定算法转换为密文,再提交至服务器验证,以此防止中间人攻击和明文泄露。其中,国密算法SM4作为我国商用密码标准,因其安全性高,在金融、政务及大型互联网平台的数据安全场景中应用广泛。掌握SM4等加密算法的逆向分析与复现能力,对于构建稳定可靠的自动化脚本具有重要技术价值。本文以163邮箱登录接口为例,详细拆解了如何通过浏览器开发者工具

weixin_29327977的博客 1227

爬虫&逆向--Day20&Day21--JS逆向案例之国密算法【SM3、SM4】

一、SM3、SM4介绍 SM3和SM4分别是一种哈希算法和对称加密算法,它们都是中国国家密码管理局发布的密码算法,广泛应用于金融、政务、电信等领域。‌。

废弃的小码农 2035

逆向国密SM2加密:Python爬虫破解能源网站前端加密实战

在Web数据采集领域,前端加密已成为常见的技术门槛,尤其涉及金融、政务、能源等高安全要求场景。非对称加密算法如SM2、RSA等,通过公钥加密、私钥解密的原理,确保数据传输安全,其技术价值在于满足合规性并有效防止数据窃取。在爬虫工程实践中,面对此类加密,开发者需掌握JS逆向技术,定位并分析前端加密逻辑,最终在Python环境中复现加密过程。本文以能源资质查询网站为例,详细解析如何通过Chrome DevTools定位`sm2encrypt`函数,利用`gmssl`库在Python中实现SM2加密,并处理JSO

weixin_26642481的博客 889

爬虫逆向加密技术详解之消息摘要算法(哈希算法):MD5加密

爬虫逆向加密技术详解之消息摘要算法(哈希算法):MD5加密

thy525的博客 1522

Python实现SM3算法完整源代码及讲解

b) 如果输入消息的长度超过448比特,则在消息末尾添加一个比特“1”,再添加若干个比特“0”,直到数据块长度模512比特余数为0,即长度为448+512k(k为非负整数)比特。其中,符号“+”表示模232加法,FF0和FF1是非线性变换,具体实现详见代码中的函数FF0()和FF1(),P0是一种非线性变换,具体实现详见代码中的函数P0()。a) 如果输入消息的长度不超过448比特,则在消息末尾添加一个比特“1”,再添加若干个比特“0”,直到数据块长度为448比特;c) 对于i=0, 1, …

学习使你进步。 3575

Python实现国家商用密码算法sm2/sm3/sm4/sm9(国密)

2010 年开始,我国国家密码管理局就已经开始陆续发布了一系列国产加密算法,这其中就包括 SM1、SM2、SM3 、SM4、SM7、SM9、ZUC(祖冲之加密算法)等,SM 代表商密,即商业密码,是指用于商业的、不涉及国家秘密的密码技术。SM1 和 SM7 的算法不公开,其余算法都已成为 ISO/IEC 国际标准。目前应用较多的是SM2、SM3和SM4算法,这三者用法不一。

小龙在线 1万+

爬虫逆向sm3和sm4 加密 案例

通过第三步,可以看到断点后重新请求,能够看出 e 和 t 很像参数,但不是很确定,可以先在控制台打印看一下。可以看出很像,但不确定,可以放置。通过观察关键信息得到以下即可(至于为啥能找到,自己悟吧,目前我能力有限无法用言语表达,全是命[一脸无奈]),可以看到headers 里加密的三个参数均能看到。的原本内容是 那一大串dict序列化的 内容(这部分请有缘人自己解析吧,基本复述上述步骤)的参数,且参数为常量(别问我为啥,我也说不好,全凭感觉[一脸无奈]),方法可以看出使用sm4加密,同时可以看到有个。

记事本 1233

国密系列加密技术及其在爬虫逆向中的应用研究

国密系列加密是由我国国家密码管理局制定的一系列密码算法标准,其目的在于保障国家信息安全和关键领域的数据安全。这些算法具有自主知识产权,摆脱了对国外加密技术的依赖,在安全性和性能上进行了精心设计和优化,能够适应不同场景下的数据加密需求。本文全面且深入地介绍了国密系列加密技术,详细阐述了其主要加密方式、作用、工作原理,以及在 JavaScript 和 Python 中的调用方法。通过对国家医疗保障网站的逆向数据分析,展示了国密系列加密技术在爬虫逆向中的应用。随着信息技术的不断发展,数据安全的重要性将日益凸显。

ylfhpy的博客 1680

国密算法SM3/SM4逆向实战:解密政务系统前端加密请求头

在数据安全传输领域,密码学算法是保障信息机密性、完整性和真实性的核心技术基础。其原理是通过特定的数学变换,将明文转换为无法直接识别的密文,或生成唯一的消息摘要。随着信息安全自主可控要求的提升,国家密码管理局认定的SM系列国密算法在政务、金融等关键领域得到广泛应用,其技术价值在于提供了符合国内安全标准、自主可控的密码解决方案。典型的应用场景包括Web系统API接口的身份认证与防篡改保护。本文以逆向分析一个实际政务系统为例,深入剖析其如何组合使用SM3杂凑算法和SM4分组密码算法,对请求头中的关键参数进行加密和

weixin_34184158的博客 349

OsgEarth实战:飞机模型动态轨迹与雷达扫描效果实现详解

本文详细介绍了如何使用OsgEarth实现飞机模型动态轨迹与雷达扫描效果。通过实战案例,讲解了模型加载、路径规划、动态轨迹绘制、飞行姿态计算以及雷达扫描效果的实现方法,并提供了性能优化技巧,帮助开发者高效完成三维可视化项目开发。

weixin_29214199的博客 303

用Python实现四叉树(quad tree)

import numpy as np #正方形类 class square: #lx、ly为左上角坐标(x对应行号,y对应列号),rx、ry为右下角坐标 def __init__(self,lx,ly,rx,ry): self.lx=lx self.ly=ly self.rx=rx self.ry=ry #检查该矩阵中是否满足条件 #参数:原矩阵,阈值 #返回值:布尔类型 def check(s

weixin_44164489的博客 5868

招聘网站数据接口逆向分析:SM2/SM3/SM4加密实战

数据加密是网络安全的核心技术,其中国密算法(SM系列)作为我国自主密码标准,在Web安全领域应用日益广泛。SM2(非对称加密)、SM3(哈希算法)和SM4(对称加密)构成了完整的加密体系,通过组合使用可实现数据保密性、完整性和身份认证。在Web逆向工程中,理解这些加密原理对破解动态参数至关重要。以招聘网站为例,其接口采用复合加密策略:SM4加密业务数据、SM3生成签名、SM2处理密钥交换,这种设计能有效防御爬虫。通过分析加密参数生成逻辑,可以学习到Webpack模块加载、条件断点调试等实用逆向技巧,为数据采

weixin_30719711的博客 399

双传声器法测量吸声材料的吸声系数(公式推导与解释)

在双传声器法中,通过测量两个位置的声压 p1和 p2​,可以分离出入射波和反射波的声压分量。双传声器法一般在阻抗管中进行,阻抗管的一端为平面波声源,另一端放置待测材料。两个传声器放置在靠近材料的阻抗管内,用于测量管道内的声压。双传声器法是一种常用于测量材料吸声系数的实验方法,通过在管道内使用两个传声器测量声波的入射和反射,来计算出材料的吸声系数。当测试样品较少时,测试时,需要交换两个传声器的位置,目的是为了相位校准。

m0_57407372的博客 1875

JS逆向学习 加密站点的渗透测试!

某xxx行智慧商家管理平台登录首页界面下图是在【手机验证登录】处通过 burpsuite 抓到的数据包,此时如果随意修改请求数据包,发送到服务端后会因无法解密或验签不通过而丢弃此次请求。针对手机号填写处,我们无法正常进行诸如SQL注入、XSS、逻辑漏洞等测试。所以解密数据包,是针对此类站点进行渗透测试的前置条件。需要用python写一个叫 Burpy 的类,在实现几个方法,如:encrypt、decrypt、processor 等,新增的方法会注册到 burpsuite 插件burpy的事件模块中。

weixin_51725318的博客 1061

OTN传送网实战指南:从光层到电层的完整架构解析(附配置示例)

本文深入解析OTN传送网从光层到电层的完整架构,涵盖关键组件、技术实现及配置示例。通过高速公路与光传送网的类比,详细介绍了光层超宽传输管道构建、电层业务调度核心引擎以及控制平面智能运维实战。附有典型组网方案与故障排查指南,助力网络工程师高效部署与维护OTN传送网。

tomato的博客 684

2025反爬虫革命:京东商品接口的动态指纹认证与量子加密传输方案

在2025年,全球电商API接口面临的安全威胁呈现指数级增长:京东构建了基于硬件、软件、行为三重维度的设备指纹模型:京东构建了基于BB84+E91混合协议的量子密钥中继网络:

FB13713612741的博客 1649

爬虫逆向基础,认识 SM1-SM9、ZUC 国密算法

这是「进击的Coder」的第 507篇技术分享作者:K小哥来源:K哥爬虫“ 阅读本文大概需要 7 分钟。 ”【01x00】 简介国密即国家密码局认定的国产加密算法,爬虫工程师在做 JS ...

静觅 3403

自相关互相关卷积的_相关性(Correlation)和相干性(Coherence)

1. 概念相关性(Correlation,或称相关系数或关联系数),显示两相关变量之间线性关系的强度和方向。在统计学中,相关的意义是用来衡量两个变量相对于其相互独立的距离。相干性(Coherence),与相关性计算得到的信息非常相似,都是衡量两个变量之间的相关程度,只是相干性多用于频域计算,可以在基于频率上给出更多的信息,而相关性多用于普通的数组计算和时域信号。这里其实应该有三个概念,c...

weixin_39963053的博客 3332

SM3/SM4国密算法爬虫逆向实战:从断点定位到跨语言复现

在爬虫逆向中,加密参数的识别是突破反爬机制的核心环节。国密算法SM3和SM4分别对标SHA-256与AES,前者输出定长64位Hex摘要,后者密文长度恒为16字节整数倍,两者组合常见于登录接口和敏感数据传输场景。理解这些算法特征与分组密码原理,有助于逆向工程师快速定位加密入口,借助断点调试、全局搜索和特征常量(如SM4 S盒)还原前端JS逻辑。工程实践中,常采用Node执行原JS、Python跨语言对拍双轨验证,以规避编码、填充、模式不一致等问题。通过一个实际登录接口案例,完整复盘从抓包判断、断点追踪、扣取

weixin_29323049的博客 322

注册电气工程师详细教材

注册电气工程师详细教材

qq_40844444的博客 4256

借助Claude实现Playwright的自动化(MCP Server)

MCP Server自己开发也是可以的,现在也有很多开箱即用的MCP Server,可以在https://github.com/modelcontextprotocol/servers中查找。

Criss@陈磊 4228
上一篇: 爬虫逆向加密技术详解之Base64编码(伪加密)
下一篇: 爬虫逆向加密技术详解之对称加密算法:原理、过程与关键技术详解
满载一船星河
博客等级 码龄5年 286粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值