python sm2 pem
时间: 2023-11-20 11:56:42 浏览: 237
为了在Python中使用gmssl进行sm2加解密操作,需要使用gmssl库。可以使用以下命令安装gmssl库:
```shell
pip install gmssl
```
接下来,可以使用以下代码进行sm2加解密操作:
```python
from gmssl import sm2, func
# 生成sm2密钥对
private_key = sm2.CryptSM2.genrate_private_key()
public_key = sm2.CryptSM2.pub_key_from_priv_key(private_key)
# 加密
plain_text = b'Top Secret'
cipher_text = sm2.CryptSM2.encrypt(public_key, plain_text)
# 解密
decrypt_text = sm2.CryptSM2.decrypt(private_key, cipher_text)
print('加密前的明文:', plain_text.decode())
print('加密后的密文:', cipher_text.hex())
print('解密后的明文:', decrypt_text.decode())
```
如果需要使用pem格式的密钥,可以使用以下代码将密钥转换为pem格式:
```python
# 将私钥转换为pem格式
private_key_pem = sm2.CryptSM2Util.export_pem(private_key)
# 将公钥转换为pem格式
public_key_pem = sm2.CryptSM2Util.export_pem(public_key)
```
如果需要从pem格式的密钥中导入密钥,则可以使用以下代码:
```python
# 从pem格式的私钥中导入密钥
private_key = sm2.CryptSM2Util.load_from_pem('dkey.pem', 'pass phrase')
# 从pem格式的公钥中导入密钥
public_key = sm2.CryptSM2Util.load_from_pem('ekey.pem')
```
阅读全文