欢迎访问宙启技术站
智能推送

利用Encrypter()进行数据加密与解密的Python实现

发布时间:2024-01-11 10:19:46

Encrypter()是一个用于数据加密和解密的Python类。它使用了一种基于密钥的加密算法,可以将数据转换为不可读的格式,并且只能使用正确的密钥才能对其进行解密。下面是Encrypter()的实现代码和使用例子。

from cryptography.fernet import Fernet

class Encrypter:
    def __init__(self, key):
        self.key = key
        self.cipher_suite = Fernet(self.key)

    def encrypt(self, data):
        encrypted_data = self.cipher_suite.encrypt(data.encode())
        return encrypted_data

    def decrypt(self, encrypted_data):
        decrypted_data = self.cipher_suite.decrypt(encrypted_data).decode()
        return decrypted_data

在上述代码中,我们使用了cryptography库中的Fernet类来实现加密和解密算法。Fernet是一种对称加密算法,使用相同的密钥进行加密和解密。

使用Encrypter类进行数据加密和解密的步骤如下:

1. 创建一个Encrypter实例,传入一个密钥作为参数。

2. 调用encrypt()方法,传入待加密的数据作为参数,返回加密后的数据。

3. 调用decrypt()方法,传入加密后的数据作为参数,返回解密后的原始数据。

下面是一个使用Encrypter类的示例:

# 生成一个密钥
key = Fernet.generate_key()

# 创建Encrypter实例
encrypter = Encrypter(key)

# 待加密的数据
data = "Hello, World!"

# 加密数据
encrypted_data = encrypter.encrypt(data)
print("加密后的数据:", encrypted_data)

# 解密数据
decrypted_data = encrypter.decrypt(encrypted_data)
print("解密后的数据:", decrypted_data)

输出结果如下:

加密后的数据: b'gAAAAABf4kTGO-P3T7yc39j6f82XtPVbXM0PFZJhKbaA11odiWX3DK1aaHeABDA5g1gi-aCsnDpT5xsuUQUYkeh65-kGIE2lAA=='
解密后的数据: Hello, World!

在上述示例中,我们首先生成一个随机的密钥,并创建Encrypter实例。然后将待加密的数据传入encrypt方法,得到加密后的数据。最后将加密后的数据传入decrypt方法,得到解密后的原始数据。

通过使用Encrypter类,我们可以将敏感的数据加密,确保数据的安全性。这在处理用户密码、数据库连接信息等敏感数据时非常有用。