python RSA公钥加密
时间: 2024-06-07 14:04:35 浏览: 114
RSA python加密
3星 · 编辑精心推荐
RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年发明。在Python中,我们可以使用内置库`cryptography`或第三方库`pycryptodome`来实现RSA公钥加密。
**RSA原理概述:**
1. **密钥生成**:RSA算法基于大数分解难题,它包含一对密钥,即公钥和私钥。公钥用于加密,而私钥用于解密。
2. **加密过程**:发送方使用接收方的公钥对明文进行加密,接收方无法用公钥直接解密。
3. **解密过程**:只有拥有私钥的人才能解密使用公钥加密的信息。
**Python实现示例(使用cryptography库):**
```python
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization, hashes
from cryptography.hazmat.primitives.asymmetric import padding
# 生成RSA密钥对
key_pair = rsa.generate_private_key(public_exponent=65537, key_size=2048)
# 公钥和私钥
public_key = key_pair.public_key()
private_key = key_pair
# 加密数据
message = b'Secret message'
ciphertext = public_key.encrypt(
message,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
# 解密数据
plaintext = private_key.decrypt(ciphertext)
```
**相关问题--:**
1. RSA算法的安全基础是什么?
2. 如何确保使用Python RSA加密的数据只可由拥有正确私钥的人解密?
3. `cryptography`库中的`OAEP`和`MGF1`分别代表什么?
4. 如果丢失了RSA的私钥,如何安全地生成新的私钥对?
阅读全文