使用 Fernet 和 PyInstaller 在 Python 中创建加密的可执行文件
使用 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 程序
相关文章