python中加密解密基础操作
时间: 2024-04-08 18:26:11 浏览: 14
在Python中,可以使用各种库和模块来进行加密和解密操作。以下是一些常用的加密解密基础操作:
1. hashlib模块:该模块提供了多种哈希算法,可以用于生成消息摘要或进行数据完整性校验。常用的哈希算法包括MD5、SHA1、SHA256等。使用方法如下:
```python
import hashlib
# 创建hash对象
hash_object = hashlib.sha256()
# 更新hash对象的内容
hash_object.update(b'message')
# 获取摘要结果
digest = hash_object.hexdigest()
```
2. base64模块:该模块提供了Base64编码和解码的功能,可以将二进制数据转换为可打印的ASCII字符。使用方法如下:
```python
import base64
# 编码
encoded_data = base64.b64encode(b'data')
# 解码
decoded_data = base64.b64decode(encoded_data)
```
3. cryptography库:该库是一个功能强大的加密工具库,支持对称加密、非对称加密、数字签名等操作。使用方法如下:
```python
from cryptography.fernet import Fernet
# 生成密钥
key = Fernet.generate_key()
# 创建加密对象
cipher_suite = Fernet(key)
# 加密数据
cipher_text = cipher_suite.encrypt(b'data')
# 解密数据
plain_text = cipher_suite.decrypt(cipher_text)
```
4. RSA算法:RSA是一种非对称加密算法,常用于数据加密和数字签名。Python中可以使用cryptography库或rsa库来进行RSA加密解密操作。使用方法如下:
```python
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization
# 生成RSA密钥对
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048
)
public_key = private_key.public_key()
# 加密数据
cipher_text = public_key.encrypt(b'data', padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None))
# 解密数据
plain_text = private_key.decrypt(cipher_text, padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None))
```