Bootstrap

python3 生成sm2密钥对

版本说明

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))

效果图如下

;