版本说明
gmssl 3.2.2
python 3.8.10
gmalg 1.0.6
生成密钥对用 gmalg库
gmssl-3.2.2压根没有生成密钥对的方法
加解密用gmssl
直接上代码!
代码可直接复制运行
from gmssl import sm2
import logging
# 设置日志级别和格式
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
import gmalg
_sm2 = gmalg.SM2()
private_key, public_key = _sm2.generate_keypair()
private_key = private_key.hex()
public_key = public_key.hex()
# private_key, public_key = generate_sm2_key_pair()
logging.info("公钥: %s", public_key)
logging.info("私钥: %s", private_key)
sm2_crypt = sm2.CryptSM2(private_key=private_key,public_key=public_key, mode=1)
aaa = "qwertyuiop"
logging.info("aaa字节格式: %s", bytes(aaa,encoding='utf-8'))
# 加密
bbb = sm2_crypt.encrypt(bytes(aaa, encoding='utf-8'))
logging.info("加密后的字节串: %s", bbb)
# 解密
ccc = sm2_crypt.decrypt(bbb)
# 检查解密结果
if ccc is None:
logging.error("解密失败,返回 None")
else:
logging.info("sm2解密后的字节串: %s", ccc)
try:
logging.info("解密后的字符串: %s", bytes.decode(ccc))
except Exception as e:
logging.error("解码错误: %s", str(e))
效果图如下