python sm2加密解密
时间: 2024-03-13 17:41:40 浏览: 30
Python中的SM***2算法对数据进行加密和解密操作。SM2是中国自主设计的一种非对称加密算法,适用于数字签名、密钥交换和加密等场景。
在Python中,可以使用第三方库`gmssl`来实现SM2加密解密功能。首先,需要安装`gmssl`库,可以使用以下命令进行安装:
```
pip install gmssl
```
安装完成后,可以使用以下代码示例进行SM2加密解密操作:
```python
from gmssl import sm2
# 生成SM2密钥对
private_key = sm2.CryptSM2().generate_private_key()
public_key = private_key.public_key
# 加密
plain_text = b"Hello, World!"
cipher_text = public_key.encrypt(plain_text)
# 解密
decrypted_text = private_key.decrypt(cipher_text)
print("加密前的明文:", plain_text)
print("加密后的密文:", cipher_text)
print("解密后的明文:", decrypted_text)
```
以上代码中,首先通过`sm2.CryptSM2().generate_private_key()`生成了一个SM2私钥对象`private_key`,然后通过`private_key.public_key`获取对应的公钥对象`public_key`。
接下来,使用公钥对象对明文进行加密,通过`public_key.encrypt(plain_text)`方法可以得到加密后的密文`cipher_text`。
最后,使用私钥对象对密文进行解密,通过`private_key.decrypt(cipher_text)`方法可以得到解密后的明文`decrypted_text`。
请注意,以上代码仅为示例,实际使用时需要根据具体需求进行适当的修改和处理。