import base64
from gmssl.sm4 import CryptSM4, SM4_ENCRYPT, SM4_DECRYPT
gzh_key = '12324567890abcdeffedcba9876543210'
def sm4_encrypt(data, key=gzh_key):
# 创建SM4加密对象
crypt_sm4 = CryptSM4()
crypt_sm4.set_key(key.encode('utf-8'), SM4_ENCRYPT)
# 对数据进行加密
encrypted_data = crypt_sm4.crypt_ecb(data.encode('utf-8'))
# 将加密后的字节串转换为base64编码字符串
encrypted_data_base64 = base64.b64encode(encrypted_data).decode('utf-8')
return encrypted_data_base64
def sm4_decrypt(encrypted_data_base64, key=gzh_key):
# 创建SM4解密对象
crypt_sm4 = CryptSM4()
crypt_sm4.set_key(key.encode('utf-8'), SM4_DECRYPT)
# 将base64编码的字符串转换回字节串
encrypted_data = base64.b64decode(encrypted_data_base64)
# 对数据进行解密
decrypted_data = crypt_sm4.crypt_ecb(encrypted_data).decode('utf-8')
return decrypted_data
if __name__ == '__main__':
data = "hello world"
print("原始数据:", data)
encrypted_data = sm4_encrypt(data)
print("加密后数据:", encrypted_data)
decrypted_data = sm4_decrypt(encrypted_data)
print("解密后数据:", decrypted_data)
原始数据: hello world
加密后数据: a3LaGPy8twAN3ZcTtWDWpQ==
解密后数据: hello world
在线SM4国密加密/解密—LZL在线工具

