from gmssl import sm2, sm3, sm4, func # 随机生成sm4密钥 def generate_sm4_key(): return func.random_hex(16) # SM4密钥长度为128位(16字节) # 使用SM4加密明文 def sm4_encode(key, data): sm4Alg = sm4.CryptSM4() # 实例化sm4 sm4Alg.set_key(key.encode(), sm4.SM4_ENCRYPT) # 设置密钥 enRes = sm4Alg.crypt_ecb(data.encode()) # 开始加密,bytes类型,ecb模式 enHexStr = enRes.hex() return enHexStr # 返回十六进制值 # 使用sm3生成消息摘要 def sm3_message_digest(data): digest = sm3.sm3_hash(func.bytes_to_list(data.encode())) # print(digest) return digest # 生成SM2密钥对 def generate_sm2_key(): sm2_crypt = sm2.CryptSM2(private_key='', public_key='') private_key, public_key = sm2.CryptSM2.generate_keypair(sm2_crypt) return private_key, public_key # 使用接受方sm2公钥对sm4密钥进行加密 def public_sm2_encrypt(data, public_key): sm2_crypt = sm2.CryptSM2(public_key=public_key, private_key='') enc_data = sm2_crypt.encr
数字信封模块代码,python实现
于 2024-08-27 16:38:19 首次发布