Python实现SM4国密算法
importosfromgmsslimportsm4classSecureSM4:def__init__(self,hex_key:str):self.key_bytesbytes.fromhex(hex_key)# 验证密钥长度必须为 16 字节 (128位)iflen(self.key_bytes)!16:raiseValueError(SM4 密钥必须为 128 位 (32位十六进制字符))def_pkcs7_padding(self,data:bytes)-bytes:标准 PKCS7 填充确保明文长度是 16 的整数倍padding_len16-(len(data)%16)returndatabytes([padding_len]*padding_len)def_pkcs7_unpadding(self,data:bytes)-bytes:移除标准 PKCS7 填充padding_lendata[-1]returndata[:-padding_len]defencrypt_cbc(self,plain_text:str)-str: 国密 SM4 CBC 模式加密 (工业标准) # 1. 每次加密都生成一个全新的、随机的 16 字节 IV (初始化向量)iv_bytesos.urandom(16)# 2. 实例化并设置密钥与运行模式crypt_sm4sm4.CryptSM4()crypt_sm4.set_key(self.key_bytes,sm4.SM4_ENCRYPT)# 3. 对明文进行标准编码与填充padded_dataself._pkcs7_padding(plain_text.encode(utf-8))# 4. 执行 CBC 加密cipher_bytescrypt_sm4.crypt_cbc(iv_bytes,padded_data)# 5. 安全规范必须将 IV 和 密文 拼在一起返回否则解密方无法解密# 拼接后的前 32 个十六进制字符是 IV后面的是真正的密文returniv_bytes.hex()cipher_bytes.hex()defdecrypt_cbc(self,mixed_hex_data:str)-str: 国密 SM4 CBC 模式解密 mixed_bytesbytes.fromhex(mixed_hex_data)# 前 16 字节是 IV后面的是密文iv_bytesmixed_bytes[:16]cipher_bytesmixed_bytes[16:]crypt_sm4sm4.CryptSM4()crypt_sm4.set_key(self.key_bytes,sm4.SM4_DECRYPT)# 解密并移除填充decrypted_paddedcrypt_sm4.crypt_cbc(iv_bytes,cipher_bytes)plain_bytesself._pkcs7_unpadding(decrypted_padded)returnplain_bytes.decode(utf-8)if__name____main__:# 你的 128 位合规密钥HEX_KEYD3CD18A35052492AA729A0D40AFEEBF4cipherSecureSM4(HEX_KEY)raw_data123456789# 每次加密由于随机 IV 的存在生成的十六进制密文都会不同但都能正确解密极度安全encryptedcipher.encrypt_cbc(raw_data)print(安全加密含IV前缀:,encrypted)decryptedcipher.decrypt_cbc(encrypted)print(解密还原数据:,decrypted)

相关新闻

告别论文内耗[特殊字符]OKBIYE才是2026真正适配双检的全能学术工具

告别论文内耗[特殊字符]OKBIYE才是2026真正适配双检的全能学术工具

写论文最崩溃的从来不是写不出字,而是反复返工、不停踩坑、工具白用! 要么降重过了查重、AI检测直接红标;要么写的内容空洞无创新、被导师无限驳回;要么排版混乱、配图廉价,细节扣分严重。 试过无数工具后终于认准OK…

2026/7/31 14:49:54 阅读更多 →
员工风险评估是什么?定义、目标与禁止标签化完整解

员工风险评估是什么?定义、目标与禁止标签化完整解

员工风险评估是围绕岗位职责和明确管理目标,对与员工相关的特定风险信息进行合规识别、分析与管理的过程。其核心不是全面调查个人,而是在合法、必要、可复核的范围内发现风险线索,避免将异常直接等同于违纪、犯罪或能力不足。直接答案&#…

2026/7/31 14:49:54 阅读更多 →
TexTools-Blender终极指南:3个智能选择工具解决UV编辑难题

TexTools-Blender终极指南:3个智能选择工具解决UV编辑难题

TexTools-Blender终极指南:3个智能选择工具解决UV编辑难题 【免费下载链接】TexTools-Blender TexTools is a UV and Texture toolset created several years ago for Blender and Max by renderhjs. In this open repository, originally created by SavMartin, we…

2026/7/31 14:49:54 阅读更多 →

最新新闻

微电网经济调度中的两阶段鲁棒优化方法与实践

微电网经济调度中的两阶段鲁棒优化方法与实践

1. 微电网经济调度与鲁棒优化的现实需求微电网作为分布式能源系统的核心单元,其经济调度问题一直是能源领域的研究热点。传统确定性优化方法在面对光伏出力波动、负荷预测偏差等不确定性因素时,往往表现出"脆弱性"——即在最坏场景下可能导致系…

2026/8/1 6:21:07 阅读更多 →
有故事不会画?2026六款主流AI漫画生成工具零基础实测对比

有故事不会画?2026六款主流AI漫画生成工具零基础实测对比

一、前言在AI技术快速普及的当下,内容创作形式迎来全面革新。传统漫画创作流程繁琐,不仅需要扎实的绘画功底,还要求创作者掌握专业的分镜设计、画面搭配能力,创作门槛较高。很多创作者拥有完整的故事剧本和创意脑洞,却…

2026/8/1 6:21:07 阅读更多 →
冰雪重制版官网下载攻略,2026 年全网最新,游昕直营安全正规渠道

冰雪重制版官网下载攻略,2026 年全网最新,游昕直营安全正规渠道

冰雪重制版(冰雪传奇重制版)官方正版游戏渠道介绍 《冰雪重制版》又名冰雪传奇重制版,由安徽游昕网络科技有限公司负责运营,是经过正版授权打造的经典复古冰雪传奇手游。现阶段游戏依托专属官方主站面向全网正式开放,高…

2026/8/1 6:21:07 阅读更多 →
Android无线调试:adb网络连接原理与实战指南

Android无线调试:adb网络连接原理与实战指南

1. 项目概述:告别数据线,让调试更自由作为一名常年和Android设备打交道的开发者或测试工程师,你肯定对adb(Android Debug Bridge)不陌生。这根命令行工具是我们与设备交互的桥梁,从安装应用到抓取日志&…

2026/8/1 6:21:07 阅读更多 →
Leetcode 108,102:将有序数组转化为二叉搜索树,二叉树的层序遍历

Leetcode 108,102:将有序数组转化为二叉搜索树,二叉树的层序遍历

1.题目描述题目解答 这道题涉及到了二叉搜索树的知识点以及什么是平衡树&#xff0c;我们来分开讲解&#xff1b; 二叉搜索树的特点就是左子节点<父节点<右子节点&#xff0c;对于每一个节点都是这样&#xff0c;无特殊情况下的时间复杂度为O(logn),如果退化成了链表的话…

2026/8/1 6:21:07 阅读更多 →
FreeRTOS任务延时:vTaskDelay与vTaskDelayUntil的精准调度解析

FreeRTOS任务延时:vTaskDelay与vTaskDelayUntil的精准调度解析

1. 从一次“诡异”的延时不准说起在嵌入式实时操作系统&#xff08;RTOS&#xff09;的开发中&#xff0c;任务延时是最基础、最高频的操作之一。我刚开始接触FreeRTOS时&#xff0c;也以为vTaskDelay()就是万能的“休眠”函数&#xff0c;直到在一个需要精确周期执行的任务里栽…

2026/8/1 6:20:07 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档&#xff0c;可以直接使用&#xff01;系统支持图片、视频、摄像头等多种方式检测裂缝&#xff0c;功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像&#xff01; pubg绝地求生目标检测数据集 1分类&#xff1a;e_body&#xff0c;14905个标签&#xff0c;txt格式 共计14244张图&#xff0c;99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/8/1 5:19:34 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别&#xff1a; allies enemy tag图片总量&#xff1a;7247张训练集&#xff1a;5139张验证集&#xff1a;1425张测试集&#xff1a;683张标注状态&#xff1a;全部已标注&#xff0c;即拿即用数据格式&#xff1a;支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →