python中怎么使用sm4算法
发表于:2024-10-02 作者:千家信息网编辑
千家信息网最后更新 2024年10月02日,这篇文章主要介绍"python中怎么使用sm4算法",在日常操作中,相信很多人在python中怎么使用sm4算法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"pytho
千家信息网最后更新 2024年10月02日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安全错误
数据库的锁怎样保障安全
上海博科软件开发有限公司
浙江语音网络技术价目表
河北省网络安全志愿者
我的世界工业服务器怎么用
数据库ado设置
生产服务器和开发服务器
数据库招聘北京
数据库安装常见问题分析
镇海ios软件开发
融媒体中心网络技术人员实操
安徽h3c服务器多少钱
计算机网络安全知识付费
国家标准委标准数据库
网络安全使用控制措施
战地1服务器延迟
开创网络安全局面
铝拓互联网科技有限公司
外部网络安全态势
怎样保证服务器安全性
阿里云数据中心部署的服务器数量
斯克比互联网科技
远程办公网络安全意识教育长图
马鞍山门店管理软件开发外包公司
车辆管理数据库设计doc
安徽h3c服务器多少钱
什么原因找不到口令服务器
京东商城的网络技术
软件开发工作优点
数据库不完善会有什么后果
上海市同森网络技术有限公司