Linux 拨号vps windows公众号手机端

怎么使用TextBlob加密和解密文本

lewis 1年前 (2024-04-11) 阅读数 32 #网络攻防
文章标签 TextBlob

TextBlob库本身并不提供加密和解密文本的功能

1、使用cryptography库进行加密和解密:

首先,需要安装cryptography库。可以使用以下命令安装:

pip install cryptography

然后,可以使用以下代码进行加密和解密:

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库。可以使用以下命令安装:

pip install pycryptodome

然后,可以使用以下代码进行加密和解密:

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'<KEY>
解密后的文本: Hello, world!

在这两个示例中,我们分别使用了cryptography库和pycryptodome库进行加密和解密。需要注意的是,加密后的文本是二进制数据,因此在输出时需要进行编码转换。在解密时,需要先将二进制数据解码还原为原始格式。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门