TextBlob库本身并不提供加密和解密文本的功能
1、使用`cryptography`库进行加密和解密:
首先,需要安装`cryptography`库。可以使用以下命令安装:
```bash
pip install cryptography
```
然后,可以使用以下代码进行加密和解密:
```python
from cryptography.fernet import Fernet
# 生成密钥
key = Fernet.generate_key()
# 创建Fernet对象
cipher_suite = Fernet(key)
# 加密文本
plain_text = "Hello, world!"
encrypted_text = cipher_suite.encrypt(plain_text.encode())
# 解密文本
decrypted_text = cipher_suite.decrypt(encrypted_text).decode()
print("原始文本:", plain_text)
print("加密后的文本:", encrypted_text)
print("解密后的文本:", decrypted_text)
```
输出结果:
```
原始文本: Hello, world!
加密后的文本: b'gAAAAABf5oXxN6DpzU5z9u3OvtmzYzFvI9yD-YzSz5J4T3bDqgYDyZo_Lx3Y5J0s6YbKYw=='
解密后的文本: Hello, world!
```
2、使用`pycryptodome`库进行加密和解密:
首先,需要安装`pycryptodome`库。可以使用以下命令安装:
```bash
pip install pycryptodome
```
然后,可以使用以下代码进行加密和解密:
```python
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from base64 import b64encode, b64decode
# 生成密钥
key = get_random_bytes(16)
# 创建AES加密器
cipher = AES.new(key, AES.MODE_EAX)
# 加密文本
plain_text = "Hello, world!"
cipher_text, tag = cipher.encrypt_and_digest(plain_text.encode())
encrypted_text = b64encode(cipher.nonce + tag + cipher_text)
# 创建AES解密器
cipher = AES.new(key, AES.MODE_EAX, nonce=cipher.nonce)
# 解密文本
decrypted_text = cipher.decrypt_and_verify(cipher_text, tag).decode()
print("原始文本:", plain_text)
print("加密后的文本:", encrypted_text)
print("解密后的文本:", decrypted_text)
```
输出结果:
```
原始文本: Hello, world!
加密后的文本: b'
解密后的文本: Hello, world!
```
在这两个示例中,我们分别使用了`cryptography`库和`pycryptodome`库进行加密和解密。需要注意的是,加密后的文本是二进制数据,因此在输出时需要进行编码转换。在解密时,需要先将二进制数据解码还原为原始格式。