写出公钥和私钥生成的函数
时间: 2024-12-09 14:12:52 浏览: 12
公钥和私钥生成是现代密码学中的重要组成部分,通常使用非对称加密算法,如RSA。下面是一个使用Python和`cryptography`库生成RSA公钥和私钥的示例函数:
```python
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization
def generate_keys():
# 生成私钥
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048,
)
# 生成公钥
public_key = private_key.public_key()
# 将私钥序列化为PEM格式
pem_private_key = private_key.private_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PrivateFormat.PKCS8,
encryption_algorithm=serialization.NoEncryption()
)
# 将公钥序列化为PEM格式
pem_public_key = public_key.public_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PublicFormat.SubjectPublicKeyInfo
)
return pem_private_key, pem_public_key
# 示例使用
private_key, public_key = generate_keys()
print("私钥:\n", private_key.decode())
print("公钥:\n", public_key.decode())
```
这个函数使用`cryptography`库生成一个2048位的RSA密钥对,并将它们序列化为PEM格式。你可以通过安装`cryptography`库来运行这个示例:
```sh
pip install cryptography
```
阅读全文