非对称加密"/>
用PYTHON 写一个类,实现非对称加密
在 Python 中,可以使用 cryptography
库来实现非对称加密。这里是一个简单的例子,展示了如何使用该库来实现非对称加密:
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import serialization, hashes# 生成密钥对
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048
)
public_key = private_key.public_key()# 序列化公钥
public_key_bytes = public_key.public_bytes(encoding=serialization.Encoding.PEM,format=serialization.PublicFormat.SubjectPublicKeyInfo
)# 使用公钥加密数据
data = b"Hello, World!"
ciphertext = public_key.encrypt(data,padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()),algorithm=hashes.SHA256(),label=None)
)# 使用私钥解密数据
plaintext = private_key.decrypt(ciphertext,padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()),algorithm=hashes.SHA256(),label=None)
)print(plaintext) # 输出:b'Hello, World!'
在这个例子中,我们使用了 RSA 算法来生成密钥对,并使用公钥加密数据,使用私钥解密数据。需要注意的是,非对称加密的数据一般都要经过填充,这里我们使用了 OAEP 填充。
如果你想将这些代码封装成一个类,可以这样做:
```python class AsymmetricEncryption: def init(self): # 生成密钥对 self.private_key = rsa.generate_private_key( public_exponent=65537, key_size=2048 ) self.public_key = self.private_key
更多推荐
用PYTHON 写一个类,实现非对称加密
发布评论