# SM4加密算法的Python实现示例
from Crypto.Cipher import SM4
from Crypto.Random import get_random_bytes
# 生成一个16字节(128位)的密钥
key = get_random_bytes(16)
# 创建SM4加密对象,使用ECB模式(电子密码本模式)
cipher = SM4.new(key, SM4.MODE_ECB)
# 要加密的数据,长度必须是16的倍数
data = b'HelloWorld1234'
# 加密数据
encrypted_data = cipher.encrypt(data)
print("Encrypted data:", encrypted_data.hex())
# 解密数据
decrypted_data = cipher.decrypt(encrypted_data)
print("Decrypted data:", decrypted_data.decode('utf-8'))
Crypto.Cipher模块中导入SM4类,并从Crypto.Random模块中导入get_random_bytes函数用于生成随机密钥。get_random_bytes(16)生成一个16字节的密钥,这是SM4算法所需的密钥长度。SM4.new()方法创建一个SM4加密对象,指定密钥和加密模式(这里使用的是ECB模式)。cipher.encrypt()方法对数据进行加密。注意,输入的数据长度必须是16的倍数。cipher.decrypt()方法对加密后的数据进行解密,恢复原始数据。这个示例展示了如何使用Python中的SM4算法进行基本的加密和解密操作。
上一篇:python获取数组长度
下一篇:python 关键字
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站