rsa加密算法python实现
时间: 2023-07-11 16:37:45 浏览: 114
基于python的RSA加密算法软件设计与实现.docx
5星 · 资源好评率100%
RSA加密算法是一种非对称加密算法,它需要一对公私钥,并且加密和解密过程中使用的是不同的密钥。
以下是Python中实现RSA加密算法的步骤:
1. 生成一对公私钥
```python
from Crypto.PublicKey import RSA
# 生成一对公私钥
key = RSA.generate(2048)
private_key = key.export_key()
public_key = key.publickey().export_key()
```
2. 使用公钥加密
```python
from Crypto.Cipher import PKCS1_OAEP
# 使用公钥加密
cipher = PKCS1_OAEP.new(RSA.import_key(public_key))
encrypted_data = cipher.encrypt(b'Hello World')
```
3. 使用私钥解密
```python
# 使用私钥解密
cipher = PKCS1_OAEP.new(RSA.import_key(private_key))
decrypted_data = cipher.decrypt(encrypted_data)
```
完整代码如下:
```python
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
# 生成一对公私钥
key = RSA.generate(2048)
private_key = key.export_key()
public_key = key.publickey().export_key()
# 使用公钥加密
cipher = PKCS1_OAEP.new(RSA.import_key(public_key))
encrypted_data = cipher.encrypt(b'Hello World')
# 使用私钥解密
cipher = PKCS1_OAEP.new(RSA.import_key(private_key))
decrypted_data = cipher.decrypt(encrypted_data)
print(decrypted_data.decode()) # 输出:Hello World
```
需要注意的是,RSA加密算法的密钥长度越长,加密的强度就越高,但加密解密的速度也会变慢。在实际使用中,需要根据实际需求来选择密钥长度。
阅读全文