Python写一个RSA加密解密
时间: 2023-08-31 12:21:27 浏览: 164
### 回答1:
好的,以下是一份使用 Python 实现 RSA 加密解密的示例代码:
```
import rsa
# RSA加密
def rsa_encrypt(plaintext, pub_key):
# 加密
ciphertext = rsa.encrypt(plaintext.encode(), pub_key)
# 返回密文
return ciphertext
# RSA解密
def rsa_decrypt(ciphertext, pri_key):
# 解密
plaintext = rsa.decrypt(ciphertext, pri_key).decode()
# 返回明文
return plaintext
# 生成公钥、私钥
(pub_key, pri_key) = rsa.newkeys(512)
# 待加密的明文
plaintext = "RSA encryption test"
# 调用RSA加密函数,进行加密
ciphertext = rsa_encrypt(plaintext, pub_key)
# 调用RSA解密函数,进行解密
decrypted_plaintext = rsa_decrypt(ciphertext, pri_key)
# 输出结果
print("待加密的明文:", plaintext)
print("加密后的密文:", ciphertext)
print("解密后的明文:", decrypted_plaintext)
```
注意:本代码仅供参考,实际使用中可能需要对代码进行一定的修改。
### 回答2:
RSA加密是一种非对称加密算法,通过生成一对公钥和私钥来实现加密和解密的过程。以下是一个用Python实现RSA加密解密的示例代码:
```python
import rsa
# 生成RSA公私钥对
(pubkey, privkey) = rsa.newkeys(2048)
# 明文
message = "Hello, World!"
# 加密
crypto = rsa.encrypt(message.encode(), pubkey)
# 解密
plain = rsa.decrypt(crypto, privkey).decode()
print("加密后的密文:", crypto)
print("解密后的明文:", plain)
```
首先,我们导入了Python的rsa模块。然后,使用`rsa.newkeys(2048)`生成了一个2048位的RSA公私钥对。接下来,我们定义了一个明文字符串`message`。
使用`rsa.encrypt(message.encode(), pubkey)`进行加密。我们将明文进行编码并调用`rsa.encrypt()`方法来加密数据,其中`pubkey`是生成的公钥。
使用`rsa.decrypt(crypto, privkey).decode()`进行解密。我们调用`rsa.decrypt()`方法来解密加密后的数据,其中`crypto`是加密后的密文,`privkey`是生成的私钥。最后,我们将解密后的数据进行解码并打印出来。
以上代码简要演示了Python如何使用RSA加密解密数据。请注意,此示例仅用于介绍RSA加密的基本原理,实际应用中还需要进行更多的安全性验证和异常处理。
阅读全文