国密算法Python库gmalg使用教程
gmalg 国密算法的纯 Python 实现. 项目地址: https://gitcode.com/gh_mirrors/gmal/gmalg
1. 项目介绍
gmalg
是一个纯Python实现的国密算法库,它包含了以下几种加密算法:
- ZUC序列密码算法
- SM2椭圆曲线公钥密码算法
- SM3密码杂凑算法
- SM4分组密码算法
- SM9标识密码算法
这个库不依赖于除Python标准库以外的任何第三方库,完全开源,可以在这里找到。
2. 项目快速启动
首先,您需要安装gmalg
库,可以使用pip命令:
pip install gmalg
以下是一个快速启动的例子,演示了如何使用gmalg
库生成SM3哈希值:
import gmalg
# 初始化SM3对象
sm3 = gmalg.SM3()
# 计算哈希值
hash_value = sm3.value()
# 打印结果
print(hash_value.hex())
3. 应用案例和最佳实践
以下是一些gmalg
库的应用案例和最佳实践:
SM4加密/解密
# 初始化SM4对象,传入密钥
sm4 = gmalg.SM4(key=bytes.fromhex("0123456789ABCDEFFEDCBA9876543210"))
# 加密数据
cipher_text = sm4.encrypt(data=b"0102030405060708")
# 打印加密结果
print(cipher_text.hex())
# 解密数据
decrypted_data = sm4.decrypt(cipher_text)
# 打印解密结果
print(decrypted_data)
SM2签名/验签
# 初始化SM2对象
sm2 = gmalg.SM2(private_key=bytes.fromhex("3945208F7B2144B13F36E38AC6D39F95889393692860B51A42FB81EF4DF7C5B8"), public_key=bytes.fromhex("04 09F9DF311E5421A150DD7D161E4BC5C673179FAD1833FC076BB08FF356F35020CCEA490CE26775A52DC6EA718CC1AA600AED05FBF35E084A6632F6072DA9AD13"))
# 签名数据
message = b"I'm SM2 sign/verify algorithm."
r, s = sm2.sign(message)
# 打印签名结果
print(r.hex())
print(s.hex())
# 验证签名
print(sm2.verify(message, r, s))
4. 典型生态项目
目前,gmalg
库作为一个纯Python实现的国密算法库,已经被一些项目所采用,例如:
- 在某些需要国密算法支持的Python项目中作为依赖库
- 在教学和研究中作为国密算法的示例
开发者可以根据自己的需要,将gmalg
集成到各种项目中,以实现国密算法的相关功能。
gmalg 国密算法的纯 Python 实现. 项目地址: https://gitcode.com/gh_mirrors/gmal/gmalg