加密解密-SM4

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在线工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值