使用gmssl库编写一个简单的SM2算法
时间: 2024-05-13 14:18:30 浏览: 94
以下是使用gmssl库编写一个简单的SM2算法的示例代码:
```python
from gmssl import sm2, func
# 生成密钥对
private_key = sm2.Sm2PrivateKey.generate()
public_key = private_key.public_key
# 加密
data = b"Hello, world!"
cipher_text = public_key.encrypt(data)
print("Cipher text:", cipher_text.hex())
# 解密
plain_text = private_key.decrypt(cipher_text)
print("Plain text:", plain_text.decode())
# 签名
signature = private_key.sign(data)
print("Signature:", signature.hex())
# 验证签名
is_valid = public_key.verify(signature, data)
print("Is valid signature:", is_valid)
```
在这个示例中,我们首先使用`sm2.Sm2PrivateKey.generate()`生成了一个SM2密钥对,然后使用公钥加密了一段明文,并使用私钥解密了密文。接下来,我们使用私钥对明文进行签名,并使用公钥验证签名的有效性。最后,我们输出了加密后的密文、解密后的明文、签名和签名的验证结果。
请注意,这只是一个非常简单的示例,实际应用中需要考虑更多的安全因素,如密钥的管理、加密模式和填充方式的选择等。
阅读全文