python 用国三加密解密代码
时间: 2023-10-12 21:46:08 浏览: 177
国密(SM2、SM3、SM4)是中国自主研发的密码算法标准。以下是一个使用Python进行国密加密解密的示例代码:
首先,需要安装`gmssl`库,它提供了国密算法的实现。你可以使用以下命令来安装它:
```
pip install gmssl
```
接下来,我们将给出一个使用SM2进行加密解密的示例代码:
```python
from gmssl import sm2, func
# 生成SM2密钥对
private_key = '7B8D92E5C6C8B0F9A2CFD2E3E4E6E8EA9FA4A7A9BDC0D3D6D9DCDEE1E4E7EA'
public_key = '04A7F4427940CFF9AFFF07FCFF8414D20B186C9F94A181E16AD7F6A26F320BCE4C8C22CDB8ACF5EE5AA42F9C7CE6A6BA31D1D32B8F3A9A60A489C8972FCA5C0E'
# 加密
def encrypt(message):
sm2_crypt = sm2.CryptSM2(public_key=public_key, private_key=private_key)
enc_data = sm2_crypt.encrypt(message.encode())
return enc_data.hex()
# 解密
def decrypt(encrypted_data):
sm2_crypt = sm2.CryptSM2(public_key=public_key, private_key=private_key)
dec_data = sm2_crypt.decrypt(bytes.fromhex(encrypted_data))
return dec_data.decode()
# 测试加密解密
message = 'Hello, World!'
encrypted_message = encrypt(message)
decrypted_message = decrypt(encrypted_message)
print('加密后的消息:', encrypted_message)
print('解密后的消息:', decrypted_message)
```
在上面的代码中,我们首先生成了一个SM2密钥对,然后定义了`encrypt`和`decrypt`函数来进行加密和解密。`encrypt`函数使用公钥对消息进行加密,返回加密后的十六进制字符串。`decrypt`函数使用私钥对加密数据进行解密,返回解密后的原始消息。
请注意,示例代码中使用的密钥对是固定的,你可能需要根据实际情况替换为自己的密钥对。
希望这能帮助到你!如果还有其他问题,请随时提问。
阅读全文