python中怎么使用sm4算法
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章主要介绍"python中怎么使用sm4算法",在日常操作中,相信很多人在python中怎么使用sm4算法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"pytho
千家信息网最后更新 2025年02月03日python中怎么使用sm4算法
这篇文章主要介绍"python中怎么使用sm4算法",在日常操作中,相信很多人在python中怎么使用sm4算法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"python中怎么使用sm4算法"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
国密sm4
sm4 算法是一个分组算法,用于无线局域网产品。该算法的分组长度为128比特,密钥长度为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
GmSSL
GmSSL是一个开源的加密包的python实现,支持SM2/SM3/SM4等国密(国家商用密码)算法、项目采用对商业应用友好的类BSD开源许可证,开源且可以用于闭源的商业应用。
python程序
from gmssl.sm4 import CryptSM4, SM4_ENCRYPT, SM4_DECRYPTimport binasciifrom heapq import heappush, heappopfrom collections import OrderedDictclass SM4: """ 国密sm4加解密 """ def __init__(self): self.crypt_sm4 = CryptSM4() def str_to_hexStr(self, hex_str): """ 字符串转hex :param hex_str: 字符串 :return: hex """ hex_data = hex_str.encode('utf-8') str_bin = binascii.unhexlify(hex_data) return str_bin.decode('utf-8') def encrypt(self, encrypt_key, value): """ 国密sm4加密 :param encrypt_key: sm4加密key :param value: 待加密的字符串 :return: sm4加密后的hex值 """ crypt_sm4 = self.crypt_sm4 crypt_sm4.set_key(encrypt_key.encode(), SM4_ENCRYPT) encrypt_value = crypt_sm4.crypt_ecb(value.encode()) # bytes类型 return encrypt_value.hex() def decrypt(self, decrypt_key, encrypt_value): """ 国密sm4解密 :param decrypt_key:sm4加密key :param encrypt_value: 待解密的hex值 :return: 原字符串 """ crypt_sm4 = self.crypt_sm4 crypt_sm4.set_key(decrypt_key.encode(), SM4_DECRYPT) decrypt_value = crypt_sm4.crypt_ecb(bytes.fromhex(encrypt_value)) # bytes类型 return self.str_to_hexStr(decrypt_value.hex()) str_data = {"ffffffwsdwefewd": "fefefewfwrv", "qazqaz": "vfbfrbgtrnujy"} key = "3l5butlj26hvv313" SM4 = SM4() print("待加密内容:", str_data) encoding = SM4.encrypt(key, str_data) print("国密sm4加密后的结果:", encoding) print("国密sm4解密后的结果:", SM4.decrypt(key, encoding))
python结果
到此,关于"python中怎么使用sm4算法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
算法
加密
密钥
字符
字符串
学习
结果
商业
更多
类型
结构
长度
分组
帮助
应用
实用
相同
接下来
产品
内容
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
自动获取当前时间填入数据库
开展一次网络安全技术
广东app软件开发收费
湖北华聚创赢网络技术有限公司
视频传输网络安全建设体系
报社的软件开发都是外包吗
密云区综合网络技术推广优点
赤峰手机软件开发
德惠新时代网络安全质量服务
软件开发 接单
做软件开发的功能列表
恩平软件开发定制
网络安全网络防护国内外研究现状
网络安全大赛谢柯明
网络安全对联
无锡市网络安全等级保护
网络安全审计支持旁路
软件开发周期分几步
3g手机软件开发培训
嘉定区新能源网络技术产业化
数据库返回格式
地铁跑酷有不同服务器吗
国家网络安全心得体会
数据库和信息安全的关系
如何清空库存数据库
调查数据库设计
关于心理的软件开发的项目团队
私人电脑能做游戏服务器吗
在王牌战争中怎么创造服务器
做网络安全技术的企业