Python exe-如何限制查看源代码和字节码?

Python exe-如何限制查看源代码和字节码?,python,html,download,exe,source-code-protection,Python,Html,Download,Exe,Source Code Protection,我正在做一个简单的项目,我将有一个HTML网站上的可下载刮板。刮板是用Python制作的,并转换为.exe文件以供下载。然而,在python代码中,我在电子邮件帐户中包含了一个Google应用程序密码,因为scraper发送电子邮件,我需要服务器使用可用的Google帐户登录。虽然.exe文件很难获得源代码,但我发现有很多方法可以做到这一点,我想知道,如何才能使下载了scraper.exe文件的任何人都看不到电子邮件登录详细信息,我将在scraper需要时使用这些信息向他们发送电子邮件?如果可能

我正在做一个简单的项目,我将有一个HTML网站上的可下载刮板。刮板是用Python制作的,并转换为.exe文件以供下载。然而,在python代码中,我在电子邮件帐户中包含了一个Google应用程序密码,因为scraper发送电子邮件,我需要服务器使用可用的Google帐户登录。虽然.exe文件很难获得源代码,但我发现有很多方法可以做到这一点,我想知道,如何才能使下载了scraper.exe文件的任何人都看不到电子邮件登录详细信息,我将在scraper需要时使用这些信息向他们发送电子邮件?如果可能,甚至可能阻止他们访问任何.exe源代码或字节码?我正在使用Python库bs4和请求


此外,这是离题的,但是,因为这是我第一次开发一个可下载的文件,即使在将Python文件转换为.exe文件时,我的防病毒软件还是将其作为可疑文件。这就像一个50行的网页刮板,显然里面没有任何恶意代码。如何使代码对防病毒程序不那么可疑?

遗憾的是,即使在今天,这个问题也没有完美的解决方案

  • 理想的用例是从web应用程序提供这个秘密密码,但在您的情况下,似乎不太可能,因为您正在构建一个相当小的桌面应用程序
  • 最好也是最简单的方法是创建一个函数,在一个单独的文件中提供这个秘密密码,并用Cython编译这个文件,这将阻止你的脚本(和你的秘密密码)在很大程度上。这会保护你免受匿名或国家安全机构的攻击吗?不会。这里有一个合理的想法,你的密码是多么的秘密和重要,你的主要受害者是谁。 最后,在编译之前,你可以对你的脚本“加盐”,或者用bcrypt或其他库对它进行进一步的修饰
至于你的第二个问题,特别是windows不喜欢没有安装程序和未签名的程序运行。 您可以使用inno安装程序创建真实的程序安装程序。
如果您想处理UAC或其他与未签名程序相关的问题,您可以签署您的程序(将花费金钱)。

遗憾的是,即使在今天,这个问题也没有完美的解决方案

  • 理想的用例是从web应用程序提供这个秘密密码,但在您的情况下,似乎不太可能,因为您正在构建一个相当小的桌面应用程序
  • 最好也是最简单的方法是创建一个函数,在一个单独的文件中提供这个秘密密码,并用Cython编译这个文件,这将阻止你的脚本(和你的秘密密码)在很大程度上。这会保护你免受匿名或国家安全机构的攻击吗?不会。这里有一个合理的想法,你的密码是多么的秘密和重要,你的主要受害者是谁。 最后,在编译之前,你可以对你的脚本“加盐”,或者用bcrypt或其他库对它进行进一步的修饰
至于你的第二个问题,特别是windows不喜欢没有安装程序和未签名的程序运行。 您可以使用inno安装程序创建真实的程序安装程序。 如果您想处理UAC或其他与未签名程序相关的问题,您可以签署您的程序(需要付费)。

  • 首先,为什么还要给他们发电子邮件?由于他们将运行.exe,它可以弹出一个窗口并提供保存文件的功能。如果必须发送电子邮件,它可以来自用户的gmail,而不是您的gmail

  • 其次,以这种方式使用gmail帐户可能违反服务条款。你可能会被暂停你的账户,在美国这可能是一项重罪。如果这是一个问题,请咨询律师

  • 对于你的问题,基本上没有办法混淆密码,这对任何不感兴趣的人来说都只是一个轻微的烦恼。在一天结束时,(a)脚本在用户的控制下运行,可能在VM或容器中运行,可能捕获网络通信;(b)在某个时刻,它必须解密并发送密码。解码和遵循脚本或它所进行的网络通信对于任何想投入相当小努力的人来说都是相对简单的

      • 首先,为什么还要给他们发电子邮件?由于他们将运行.exe,它可以弹出一个窗口并提供保存文件的功能。如果必须发送电子邮件,它可以来自用户的gmail,而不是您的gmail

      • 其次,以这种方式使用gmail帐户可能违反服务条款。你可能会被暂停你的账户,在美国这可能是一项重罪。如果这是一个问题,请咨询律师

      • 对于你的问题,基本上没有办法混淆密码,这对任何不感兴趣的人来说都只是一个轻微的烦恼。在一天结束时,(a)脚本在用户的控制下运行,可能在VM或容器中运行,可能捕获网络通信;(b)在某个时刻,它必须解密并发送密码。解码和遵循脚本或它所进行的网络通信对于任何想投入相当小努力的人来说都是相对简单的


      用户只需运行单独的文件并直接调用函数即可获得密码?是的,这取决于提供的解释器。我的意思是,扩展名可以加载到通用Python解释器中,然后直接调用。用户只需运行单独的文件并直接调用函数即可获得密码?是的,取决于提供的解释器。我的意思是,扩展可以加载到一个通用Python解释器中,然后直接调用。它发送一封电子邮件通知某个项目的价格已经下降