非对称加密算法python
时间: 2023-10-12 21:04:54 浏览: 109
在Python中,可以使用各种库和模块来实现非对称加密算法。以下是使用PyCryptodome库实现RSA非对称加密算法的示例代码:
```python
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
# 生成RSA密钥对
key_pair = RSA.generate(2048)
# 获取公钥和私钥
public_key = key_pair.publickey()
private_key = key_pair.export_key()
# 使用公钥进行加密
cipher = PKCS1_OAEP.new(public_key)
encrypted_data = cipher.encrypt(b'Hello, World!')
# 使用私钥进行解密
cipher = PKCS1_OAEP.new(key_pair)
decrypted_data = cipher.decrypt(encrypted_data)
print("加密后的数据:", encrypted_data)
print("解密后的数据:", decrypted_data.decode())
```
在上述代码中,我们首先导入了`RSA`和`PKCS1_OAEP`模块,并使用`RSA.generate()`方法生成了一个2048位的RSA密钥对。然后,我们使用公钥进行加密和私钥进行解密。
在加密阶段,我们使用`PKCS1_OAEP.new()`方法创建了一个加密器对象,并调用其`encrypt()`方法对数据进行加密。在解密阶段,我们同样使用`PKCS1_OAEP.new()`方法创建了一个解密器对象,并调用其`decrypt()`方法对加密后的数据进行解密。
最后,我们打印出加密和解密后的数据。
请注意,为了运行上述代码,你需要在Python环境中安装PyCryptodome库。你可以使用`pip install pycryptodome`命令进行安装。
阅读全文