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

商密2(SM2)获取公私钥对、加解密文件

exe文件下载
链接: https://pan.baidu.com/s/1OAPvcv26NoVpmmXM7kq_xQ?pwd=c46d 提取码: c46d

以下为源代码:

获取SM2公私钥对

import os
import time
from gmssl import sm2def generate_key_pair():# 生成32字节(256位)的私钥pri_key = os.urandom(32).hex()# 使用gmssl生成公钥sm2_crypt = sm2.CryptSM2(private_key=pri_key, public_key='')pub_key = sm2_crypt._kg(int(pri_key, 16), sm2.default_ecc_table['g'])return pri_key, pub_keyif __name__ == '__main__':pri_key, pub_key =generate_key_pair()with open('key_pair_' + str(time.time()) + '.txt', 'w') as f:f.write('公钥:' + pub_key + '\n私钥:' + pri_key)

SM2加密文件

from gmssl import sm2def encrypt_file(file_path, pub_key):# 读取文件内容with open(file_path, 'rb') as f:data = f.read()# 初始化SM2加密对象sm2_crypt = sm2.CryptSM2(public_key=pub_key, private_key='', mode=1, asn1=True)# 加密数据print('开始加密:', file_path)encrypted_data = sm2_crypt.encrypt(data)# 将加密结果写入新文件encrypted_file_path = file_path + '.encrypted'with open(encrypted_file_path, 'wb') as f:f.write(encrypted_data)return encrypted_file_pathif __name__ == '__main__':file_path = input('请输入需要加密的文件:')pub_key = input('请输入SM2公钥:')# 加密文件encrypted_file = encrypt_file(file_path, pub_key)print('加密后的文件:', encrypted_file)

SM2解密文件

from gmssl import sm2def decrypt_file(encrypted_file_path, pri_key):# 读取加密文件内容with open(encrypted_file_path, 'rb') as f:encrypted_data = f.read()# 初始化SM2解密对象sm2_crypt = sm2.CryptSM2(private_key=pri_key, public_key='', mode=1, asn1=True)# 解密数据print('开始解密:', file_path)decrypted_data = sm2_crypt.decrypt(encrypted_data)# 将解密结果写入新文件decrypted_file_path = encrypted_file_path.replace('.encrypted', '.decrypted.' + encrypted_file_path.split('.')[-2])with open(decrypted_file_path, 'wb') as f:f.write(decrypted_data)return decrypted_file_pathif __name__ == "__main__":file_path = input('请输入需要解密的文件:')pri_key = input('请输入与SM2公钥对应的私钥:')# 解密文件decrypted_file = decrypt_file(file_path, pri_key)print("解密后的文件:", decrypted_file)
http://www.jsqmd.com/news/481129/

相关文章:

  • 信奥赛C++提高组csp-s之数论基础专题课:中国剩余定理1(数学原理)
  • P15548 题解
  • 人,有了物质才能生存;人,有了理想才谈得上生活
  • 中小企业别再只靠爆款和运气!真正盈利增长需要体系化变革-佛山鼎策创局破局增长咨询
  • 2026年江苏机器外壳钣金加工厂费用分析,哪家价格更合理 - mypinpai
  • 无人机岔路口车辆巡检数据集 城市交通流监测识别 自动驾驶车辆感知检测 低空航拍目标识别 交通违章识别 无人机数据集YOLO第10560期
  • 盘点2026年江苏机械加工品牌,常州布恩机械的市场竞争力强吗 - 工业设备
  • QT编程(12): QDragEvent事件
  • 2026最新!AI论文写作软件 千笔AI VS 灵感ai,全领域适配首选
  • CF862E 题解
  • 学霸同款!普遍认可的AI论文网站 —— 千笔·专业论文写作工具
  • 2026年酒泉戈壁徒步公司口碑排名,靠谱品牌有哪些 - 工业品网
  • 一文讲透|全行业通用降AIGC工具 —— 千笔
  • 深圳区域起重机安装资质办理,亨通靠谱服务排名前列 - myqiye
  • 交稿前一晚!9个降AI率软件降AIGC网站评测对比,全行业通用必看
  • 南京高功率密度电源定制,2026年这些源头厂家有优势,氢能源车载直流转换器/辅助应急电源,高功率密度电源品牌哪个好 - 品牌推荐师
  • 说说上海专业的企业法律在线咨询机构,哪家口碑更好 - 工业品牌热点
  • 毕业论文神器 8个一键生成论文工具:开源免费测评+高效写作推荐
  • 直线轴承品牌新动态:2026年值得关注的品牌,直线轴承排行榜技术领航者深度解析 - 品牌推荐师
  • 深度解析:2026年国内伺服印刷机定制服务哪家强?,目前耐用的伺服印刷机哪家权威优质品牌选购指南 - 品牌推荐师
  • 赶deadline必备 AI论文写作软件 千笔AI VS 灵感ai
  • 爬虫测试:单元测试与集成测试实践
  • 交稿前一晚!千笔AI,开源免费降重神器
  • 服务器部署爬虫:Supervisor 进程守护
  • 好用还专业!8个降AI率工具全领域适配测评与推荐
  • 国产智驾SoC全面突围:从低算力替代到高算力量产的技术跃迁
  • 数字化研发核心引擎:2026年主流需求管理软件竞争格局与趋势解析 - 品牌推荐
  • 汽车与机器人领域的“全脑”计算平台引领者
  • 第二部分 主体间性与DOS三值纠缠:关系哲学的双重维度
  • 第四部分 公共领域与星图舞台:多元协商的空间条件