python sm2加密解密代码
时间: 2024-10-15 21:20:24 浏览: 55
Python 的 `sm2` 模块是用于支持 SM2 公钥密码算法的一组工具,它通常用于实现安全的消息传输。SM2 是一种中国制定的公钥加密算法,类似于RSA。
以下是使用 `sm2` 进行加解密的基本示例:
```python
from Crypto.PublicKey import SM2
from Crypto.Cipher import PKCS1_OAEP
# 加密
def encrypt(message, public_key):
# 创建一个SM2公钥对象
cipher = PKCS1_OAEP.new(public_key)
return cipher.encrypt(message.encode('utf-8'))
# 解密
def decrypt(ciphertext, private_key):
# 将SM2私钥转换为合适的对象
key = SM2.import_key(private_key)
cipher = PKCS1_OAEP.new(key)
return cipher.decrypt(ciphertext).decode('utf-8')
# 示例用法
public_key = SM2.generate(3072) # 生成公钥
private_key = public_key.export_key() # 导出私钥(注意:不要在生产环境中这样做)
message = "Hello, SM2!"
ciphertext = encrypt(message, public_key)
plaintext = decrypt(ciphertext, private_key)
print(f"原始消息: {message}")
print(f"加密后的信息: {ciphertext}")
print(f"解密后的消息: {plaintext}")
```
请注意,`Crypto` 库在这里是作为一个例子使用的,实际应用中可能需要安装 `pycryptodome` 或者 `cryptography` 等库来支持 `sm2` 加密。
阅读全文