python动态加密
时间: 2024-11-15 15:28:16 浏览: 9
python数据加密_python数据加密_encryption_
Python支持多种动态加密技术,其中最常用的是基于各种加密库的实现。常见的加密算法有对称加密(如AES、DES)、非对称加密(RSA、ECC)以及哈希函数(MD5、SHA)。以下是Python中常用的几种加密方法:
1. **对称加密**:
- `cryptography`库提供了一个高级API,可以使用Fernet模块创建AES-GCM模式的密钥对,例如:
```python
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
key = b'secret_key'
cipher_text = Fernet(key).encrypt(b'my_secret_message')
```
2. **非对称加密**:
- `cryptography`库也支持公钥密码学,例如使用`RSAPublicKey`和`RSASignature`类进行RSA操作:
```python
from cryptography.hazmat.primitives.asymmetric import rsa, padding
public_key, private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048)
encrypted_data = public_key.encrypt(message, padding.OAEP(...))
```
3. **哈希函数**:
- 使用`hashlib`库,如生成MD5或SHA-256散列值:
```python
import hashlib
message = 'my secret'
hashed_message = hashlib.sha256(message.encode()).hexdigest()
```
**动态加密示例**:
```python
import base64
from cryptography.fernet import Fernet
key = Fernet.generate_key() # 生成随机密钥
cipher_suite = Fernet(key)
# 加密
message = 'Hello, World!'
encrypted_message = cipher_suite.encrypt(message.encode())
# 解密
decrypted_message = cipher_suite.decrypt(encrypted_message)
print(f"原始消息: {message}")
print(f"加密后的消息 (Base64): {base64.b64encode(encrypted_message)}")
```
阅读全文