使用python语言编程实现DES与RSA加密算法,并附有注释
时间: 2024-10-22 14:21:43 浏览: 90
在Python中,我们可以使用一些库如`pycryptodome`来实现DES(Data Encryption Standard)和RSA(Rivest-Shamir-Adleman)这两种常见的加密算法。下面是一个简化的示例,展示了如何使用这两个算法:
首先,安装必要的库(如果尚未安装):
```bash
pip install pycryptodome
```
**DES加密示例**:
```python
from Crypto.Cipher import DES
from Crypto.Util.Padding import pad, unpad
# 创建DES密钥(16字节)
key = b'sixteen_byte_key'
# 加密函数
def des_encrypt(plaintext):
cipher = DES.new(key, DES.MODE_CBC) # CBC模式需要一个初始向量(IV),这里假设已经设置好
ct_bytes = cipher.encrypt(pad(plaintext.encode('utf-8'), DES.block_size)) # 对明文进行PKCS7填充
return ct_bytes
# 示例使用
plaintext = "Hello, DES!"
ct = des_encrypt(plaintext)
print("Encrypted text:", ct.hex())
```
**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
# RSA加密函数
def rsa_encrypt(plaintext, public_key):
encryptor = PKCS1_OAEP.new(public_key)
encrypted_text = encryptor.encrypt(plaintext.encode('utf-8'))
return encrypted_text
# 示例使用
plaintext = "Hello, RSA!"
ct = rsa_encrypt(plaintext, public_key)
print("Encrypted text:", ct.hex())
```
注意:DES通常被认为不够安全,现代应用中更多地使用AES或其他更先进的加密标准。RSA加密则需要处理大数计算,效率较低。
阅读全文