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

Yakit/Yaklang 国密算法支持详解

📌 国密算法速览

在介绍 Yakit 支持之前,先了解国密三大核心算法:

算法

类型

对标国际标准

用途

SM2

非对称(ECC)

RSA

数字签名、密钥交换、身份认证

SM3

哈希摘要

MD5/SHA

数字签名、数据完整性验证

SM4

对称分组加密

DES/AES

数据加解密(分组密码)

说明:SM1 算法不公开,仅以 IP 核形式存在于芯片中,软件层面无法支持;SM9 为标识密码算法(非对称,将用户标识作为公钥)。

🔴 Yaklang/CDSL 对国密算法的支持情况

算法

支持程度

说明

SM3

✅ 完全支持

hash 模块内置

SM4

✅ 完全支持

多模式加解密(CBC/OFB/CTR/ECB)

SM2

⚠️ 有限支持

社区版 RSA 接口未针对 SM2 优化,功能待完善

SM1

❌ 不支持

算法不公开,软件层无法实现

📦 SM3 使用方法

函数:codec.Sm3(data)

说明:对数据生成 SM3 哈希摘要(输出十六进制字符串)

Yaklang 示例:

data = "Hello, World!" sm3Hash = codec.Sm3(data) dump(sm3Hash) // 输出:9185dda7c380d3d7ac243c9e39d1d56850cfe5f7a3b2509e65c4e82e8c29bf6a


使用场景:

  • 数据完整性校验(替代 MD5/SHA)

  • 密码存储(数据库中存 SM3 摘要而非明文)

  • 消息认证码(MAC)生成

  • 数字签名中的摘要计算

📦 SM4 使用方法

SM4 是 Yaklang 支持最完整的国密算法,支持多种加密模式:

1. SM4-CBC 模式(最常用) key = "0123456789abcdef" // 16字节密钥 iv = "fedcba9876543210" // 16字节初始化向量 plaintext = "Hello, SM4!" // 加密 ciphertext = codec.SM4EncryptCBCWithPKCS7Padding(key, iv, plaintext) // 解密 decrypted = codec.SM4DecryptCBCWithPKCS7Padding(key, iv, ciphertext) 2. SM4-OFB 模式 key = "0123456789abcdef" iv = "fedcba9876543210" ciphertext = codec.SM4EncryptOFBWithPKCSPadding(key, iv, plaintext) decrypted = codec.SM4DecryptOFBWithPKCSPadding(key, iv, ciphertext) 3. SM4-ECB 模式(简单但安全性较低) key = "0123456789abcdef" ciphertext = codec.SM4EncryptECBWithPKCSPadding(key, plaintext) decrypted = codec.SM4DecryptECBWithPKCSPadding(key, ciphertext) 4. SM4-CTR 模式 key = "0123456789abcdef" nonce = "fedcba9876543210" // 12字节nonce ciphertext = codec.SM4EncryptCTRWithPKCSPadding(key, nonce, plaintext) decrypted = codec.SM4DecryptCTRWithPKCSPadding(key, nonce, ciphertext)

SM4 密钥格式注意事项:

  • 密钥长度为 16 字节(128位)

  • Yakit 支持十六进制(Hex)格式密钥

  • CBC/OFB 模式需提供 16 字节 IV

  • CTR 模式需提供 12 字节 Nonce

⚠️ SM2 支持情况

项目

说明

当前状态

社区版功能有限,RSA 接口未针对 SM2 优化

原因

社区版开发优先级考量,暂无强烈硬需求

对标

SM2 对标 RSA(数字签名/密钥交换)

建议

如需完整的 SM2 支持,可通过 Yaklang 编写插件调用底层密码库

💡 如果需要 SM2 加解密/签名验签,可通过 Yaklang 热加载插件扩展,调用 sm-crypto 或 gm-crypto 等 JS 库实现。

🛠️ 在 Yakit GUI 中使用国密

场景一:Web Fuzzer 热加载中使用 SM4

在测试需要 SM4 加密的接口时,通过热加载标签动态生成加密 payload:

// 热加载函数示例 sm4Encrypt = func(p) { key = "0123456789abcdef" iv = "fedcba9876543210" // 对 fuzztag 生成的原始数据加密后发送 return codec.SM4EncryptCBCWithPKCS7Padding(key, iv, p) }

场景二:编解码模块直接使用

在 Yakit 的 Codec(数据处理) 模块中:

  • 选择编解码类型为 SM4

  • 输入密钥和 IV

  • 选择加密模式(CBC/OFB/CTR/ECB)

  • 一键加解密

场景三:CTF / 渗透测试靶场

  • 前端 SM4 加密通信分析

  • 渗透测试中绕过前端加密(如金融类 App)

  • 配合 Web Fuzzer 爆破带国密保护的接口

📊 核心函数汇总

函数

模式

填充

codec.Sm3(data)

codec.SM4EncryptCBCWithPKCS7Padding

CBC

PKCS#7

codec.SM4DecryptCBCWithPKCS7Padding

CBC

PKCS#7

codec.SM4EncryptOFBWithPKCSPadding

OFB

PKCS#7

codec.SM4DecryptOFBWithPKCSPadding

OFB

PKCS#7

codec.SM4EncryptECBWithPKCSPadding

ECB

PKCS#7

codec.SM4DecryptECBWithPKCSPadding

ECB

PKCS#7

codec.SM4EncryptCTRWithPKCSPadding

CTR

PKCS#7

codec.SM4DecryptCTRWithPKCSPadding

CTR

PKCS#7

🎯 典型使用场景

场景

推荐算法

说明

测试国密 HTTPS 通信

SM4

分析 SM4 加密的请求体/响应体

绕过前端 SM4 加密

SM4-CBC/OFB

热加载动态加密 payload

数据完整性校验

SM3

替代 SHA/MD5 验证响应签名

金融/政务系统渗透

SM4 + SM3

国密标准系统测试

CTF 密码学题目

SM4

SM4 加解密类题目

总结:Yaklang 目前对 SM3 和 SM4 支持完整,可直接使用 codec 模块进行加解密和摘要计算;SM2 支持较为有限;SM1 不支持。在实际渗透测试中,SM4 是最常用的国密加解密算法,主要用于测试采用国密标准(金融、政务、移动 App)的通信加密系统。

http://www.zskr.cn/news/1533146.html

相关文章:

  • Windows 11硬件限制绕过完整方案深度解析
  • 奇异矩阵:数据科学中必须读懂的线性代数诊断信号
  • 2026考场防作弊设备选购指南:中高考手机信号屏蔽仪哪家强?实战案例与厂商深度评测 - 优质品牌商家
  • 2026年自贡中专择校指南:如何从就业、升学、管理三大维度选中专?附多校实测分析 - 优质品牌商家
  • 宏科印业推荐哪家?综合对比与评价 - 工业品网
  • Superpowers工程化实践:AI编程的质量门禁与开发流水线
  • Gemini 3.1原生协同:谷歌AI如何重构操作系统级交互
  • 如何选择靠谱的Acetron GPPOMC供应商?价格指南 - 工业品网
  • NoC组件之Router微架构解析(四)仲裁
  • 多相机兼容驱动方案:从抽象接口到工业实践
  • OBS多平台直播插件:3步实现YouTube、Twitch、B站同步推流
  • Python两位小数处理:四舍五入、银行家舍入与decimal精度实战
  • AgentGPT与AutoGPT选型指南:自主代理落地的工程决策逻辑
  • VSCode+Qwen3本地编程助手:零数据出境的AI编码实践
  • 打破苹果生态壁垒:3步让Windows电脑变身专业AirPlay接收器
  • 三相异步电动机原理、选型、控制与维护实战指南
  • 如何用MetaboAnalystR 4.0实现终极LC-MS代谢组学分析
  • DeepSeek V4 API双模型架构解析:百万上下文如何成为开发基础设施
  • ReWoo架构:解耦推理与观测的大模型工作流重构
  • 2026年四川及全国带管厂家综合实力分析:从钢带管到电力管供应商横向调研 - 优质品牌商家
  • 破除“内存墙”:存内计算 (IMC) 与计算架构的下一次大爆发
  • 2026年阻燃橡胶泡棉CR-5060B行业深度分析:技术参数、应用场景与供应商能力解读 - 优质品牌商家
  • 如何快速解决网盘限速:3步操作实现高速下载的完整指南
  • 六顶点模型与高斯自由场的临界现象研究
  • Python pandas选列策略:从基础语法到数据契约
  • 网盘资源安全处理与知识内化全流程指南
  • B2B 工厂专属双引擎策略:SEO 承接采购词排名,GEO 抢占 AI 咨询问答
  • Claude Code终端AI工作流:本地化嵌入式编程助手实战指南
  • LTspice仿真入门:单管共射放大电路设计与分析实战
  • 数字资产商城隐藏优惠机制全解析:从白名单到二级市场捡漏