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

在Python中实现一个简单的数据加密程序

发布时间:2023-12-04 15:42:35

在Python中实现数据加密可以使用多种方法和库。以下是一个简单的例子,演示了如何使用Python的cryptography库实现对数据的加密。

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

pip install cryptography

下面是一个简单的数据加密程序的实现:

from cryptography.fernet import Fernet


def generate_key():
    key = Fernet.generate_key()
    with open("key.key", "wb") as key_file:
        key_file.write(key)


def load_key():
    return open("key.key", "rb").read()


def encrypt_message(message, key):
    f = Fernet(key)
    encrypted_message = f.encrypt(message.encode())
    return encrypted_message


def decrypt_message(encrypted_message, key):
    f = Fernet(key)
    decrypted_message = f.decrypt(encrypted_message)
    return decrypted_message.decode()


# 生成并保存密钥
generate_key()

# 加载密钥
key = load_key()

# 加密数据
message = "Hello, World!"
encrypted_message = encrypt_message(message, key)
print("加密后的数据:", encrypted_message)

# 解密数据
decrypted_message = decrypt_message(encrypted_message, key)
print("解密后的数据:", decrypted_message)

在上述代码中,我们首先定义了generate_key函数来生成一对密钥,并将密钥保存在key.key文件中。然后,我们定义了load_key函数来加载密钥。

接下来,我们定义了encrypt_message函数来加密消息。在该函数中,我们使用以加载的密钥创建Fernet对象,并使用该对象对消息进行加密。

最后,我们定义了decrypt_message函数来解密消息。该函数接受加密后的消息和密钥,并使用密钥创建Fernet对象,然后使用该对象对消息进行解密。

在主程序中,我们首先生成并保存密钥。然后,加载密钥并使用它对消息进行加密。然后,我们解密加密后的消息,并打印出解密后的消息。

请注意,生成的密钥应妥善保存,并且只有授权的用户才能访问它。

运行上述代码后,你将看到如下输出:

加密后的数据: b'gAAAAABg8pC7Uu1H3H3PVqykc4B7DFVrGSYdc1NzHE3_7fDaxWhk_mQieaxIN9lorF42ETtX_40aDghwBdAnkdTfhfZ7aFlDjg=='
解密后的数据: Hello, World!