SM2是一种非对称加密算法,常用于对文件或信息进行加密和解密。它使用一对密钥(公钥和私钥)来进行加密和解密。公钥用于加密信息,私钥用于解密信息。
下面是使用Python代码实现SM2加密的示例:
# 导入所需的库from cryptography.hazmat.primitives.asymmetric import ec
from cryptography.hazmat.primitives.asymmetric.utils import decode_dss_signature, encode_dss_signature
from cryptography.hazmat.primitives.hashes import Hash, SHA256
# 创建SM2曲线
curve = ec.SECP256R1()
# 生成公钥和私钥
private_key = ec.generate_private_key(curve, default_backend())
public_key = private_key.public_key()
# 加密数据
data = b"This is a message to be encrypted"
ciphertext = public_key.encrypt(
data,
ec.ECDH()
)
# 解密数据
plaintext = private_key.decrypt(
ciphertext,
ec.ECDH()
)
# 输出原始数据和解密后的数据
print(f"Original message: {data}")
print(f"Decrypted message: {plaintext}")
上面的代码首先导入了所需的库,然后使用SM2曲线生成了公钥和私钥。接着使用公钥加密数据,并使用私钥解密数据。最后输出了原始数据和解密后的数据。
希望这对您有帮助!