使用 Fernet 和 PyInstaller 在 Python 中创建加密的可执行文件

2023-03-29 00:00:00 创建 加密 可执行文件

使用 Fernet 和 PyInstaller 在 Python 中创建加密的可执行文件非常简单。下面是一个示例,演示了如何使用 Fernet 加密 Python 程序,并使用 PyInstaller 将其打包为加密的可执行文件:

1、首先,在你的 Python 项目中安装 cryptography 和 pyinstaller 库:

pip install cryptography pyinstaller

2、然后,创建一个加密模块 encryption.py,用于加密和解密数据,代码如下:

from cryptography.fernet import Fernet

# 密钥加密和解密时必须相同
SECRET_KEY = b'your-secret-key-here'

class Encryption:
    def __init__(self, key):
        self.key = key

    def encrypt(self, plaintext):
        fernet = Fernet(self.key)
        return fernet.encrypt(plaintext.encode())

    def decrypt(self, ciphertext):
        fernet = Fernet(self.key)
        return fernet.decrypt(ciphertext).decode()

在上述代码中,我们定义了 Fernet 密钥和加密类 Encryption,用于加密和解密数据。在构造函数中,我们传入 Fernet 密钥。然后,我们使用 Fernet 密钥加密和解密数据。

3、然后,创建一个名为 encrypt_script.py 的加密脚本,用于加密 Python 程序。代码如下:

from encryption import Encryption

# 创建加密实例
encryption = Encryption(SECRET_KEY)

# 加密 Python 程序
with open('main.py', 'rb') as f:
    plaintext = f.read()
ciphertext = encryption.encrypt(plaintext)
with open('main.py.encrypted', 'wb') as f:
    f.write(ciphertext)

在上述代码中,我们首先导入加密模块 encryption.py。然后,我们创建了一个加密实例 encryption,并使用它将 main.py 文件中的代码加密为密文。最后,我们将密文写入到一个新的文件 main.py.encrypted 中。

4、接下来,创建一个名为 main.py 的 Python 程序,用于演示加密和解密数据的功能。代码如下:

from encryption import Encryption

# 创建加密实例
encryption = Encryption(SECRET_KEY)

# 加密并解密字符串
plaintext = 'pidancode.com'
ciphertext = encryption.encrypt(plaintext)
decrypted_text = encryption.decrypt(ciphertext)
print('明文:', plaintext)
print('密文:', ciphertext)
print('解密后的明文:', decrypted_text)

在上述代码中,我们首先导入加密模块 encryption.py。然后,我们创建了一个加密实例 encryption,并使用它将字符串 pidancode.com 加密为密文。最后,我们解密密文,并将明文和解密后的明文打印出来。

5、最后,使用 PyInstaller 将 Python 程序打包为加密的可执行文件。在终端中进入 Python 程序

相关文章