python - Python exe - 如何限制查看源代码和字节码?
问题描述
我正在制作一个简单的项目,我将在 HTML 网站上拥有一个可下载的刮板。刮板是用 Python 制作的,并被转换为 .exe 文件以供下载。然而,在 python 代码中,我在电子邮件帐户中包含了一个 Google 应用程序密码,因为刮板会发送一封电子邮件,并且我需要服务器使用可用的 Google 帐户登录。虽然 .exe 文件很难获得源代码,但我已经看到有办法做到这一点,我想知道,我怎样才能做到让任何下载了 scraper.exe 文件的人都看不到电子邮件当刮板需要时,我将用来向他们发送电子邮件的登录详细信息?如果可能的话,甚至可能完全阻止他们访问任何 .exe 源代码或字节码?我正在使用 Python 库 bs4 和请求。
此外,这是题外话,因为这是我第一次开发可下载文件,即使在将 Python 文件转换为 .exe 文件时,我的防病毒软件也将其视为可疑文件。这就像一个 50 行的网络爬虫,显然其中没有任何恶意代码。如何使代码对防病毒程序不那么可疑?
解决方案
可悲的是,即使在今天,这个问题也没有完美的解决方案。
- 理想的用例是从 Web 应用程序提供此 secret_password,但在您的情况下似乎不太可能,因为您正在构建一个相当小的桌面应用程序。
- 最好和最简单的方法是在一个单独的文件中创建一个提供这个 secret_password 的函数,然后用 Cython 编译这个文件,这会很好地扩展你的脚本(和你的 secret_password)。这会保护你免受匿名还是国家安全机构?不。这是关于您的密码的秘密和重要程度以及您主要可能受到伤害的人的合理思考。最后,在编译之前,您可以“加盐”您的脚本或使用 bcrypt 或其他库进一步模糊它。
至于您的第二个问题,防病毒软件,特别是 Windows 不喜欢在没有安装程序和未签名的情况下运行的程序。您可以使用 inno setup 创建一个真实的程序安装程序。如果您想处理 UAC 或其他与未签名程序相关的问题,您可以签署您的程序(需要花钱)。
推荐阅读
- python - 如何使用 pygame spritegroups 绘制部分精灵图像?
- c# - 如何在我的 DataGrid 中获取选定单元格的当前列(C# WPF 应用程序)
- docker - 用于私有镜像的 DockerHub 注册表主机
- angular - amcharts 垂直条形图,标签缺失
- vhdl - 有没有使用 fixed_pkg.vhdl 的替代方法?由于它,莱昂纳多频谱似乎没有合成我的代码
- javascript - 在函数内动态设置名称
- dvc - 运行 dvc push 到 DAGsHub 时,Git bash 命令提示符挂起
- python - 更新中 DRF HiddenField 的字段级验证
- android - 如何获取每台设备的 GL_MAX_TEXTURE_SIZE
- google-apps-script - 在Goode工作表数据透视表中折叠小计