【问题标题】:remove remaining hex code in Pyc file删除 Pyc 文件中剩余的十六进制代码
【发布时间】:2018-03-25 19:47:34
【问题描述】:

我有一个项目要发送,基本上我必须使用 python 发送电子邮件。

我的代码已经完成,所以我正要发送它。 由于模块 smtplib 需要我的电子邮件登录,我编译了我的代码,所以人们看不到我的电子邮件和密码,但是,即使编译,当我们查看十六进制代码时,我们仍然可以看到我的电子邮件和密码(并且一些印刷品)

有没有办法编译,所以我们没有留下任何信息?

非常感谢您的帮助和时间!

【问题讨论】:

标签: python python-3.x compilation hex pyc


【解决方案1】:

通常,在代码中保存敏感信息是个坏主意。没有统一的最佳方法,但存储凭据的常见做法包括:

  • 在一个单独的代码文件中,而不是在您的代码库中(local_settings.py,添加到 .gitignore)
  • 在项目的单独配置文件外部中(例如 json 或 yml)
  • 环境变量(使用os.environ读取)
  • 命令行参数
  • 请求作为用户输入
  • 以上所有内容的组合

【讨论】:

  • 感谢您提供多种选择的回复!问题是,我只能发送 1 个文件,它是一个 python 文件。我只是尝试像你建议的那样将它们放入一个 os.environ 变量中,但它仍然出现在十六进制中。
  • Python 无法将环境变量保存在字节码中,因此,请确保:在运行编辑的 python 文件之前,十六进制不会更新。你是否?那么,为什么不只发送 .py 文件,不发送字节码呢?
  • 是的,我修改了代码并在更改为 os.environ 后重新编译了它,但我仍然看到十六进制代码中的电子邮件、密码和其他变量。如果我只发送.py 文件,每个人都可以访问我的电子邮件帐户,因为它需要从我的电子邮件发送,而不是另一个。
  • 这正是我所说的——你的电子邮件地址(和密码,以及 smtp 服务器等)首先不应该在 .py 文件中。将它们存储在文件之外的某个位置,即我列出的位置之一。
  • 一开始我想这样做,但我不知道如何从这个文件中访问它们,因为我只能发送 1 个文件...
猜你喜欢
  • 2018-12-24
  • 2013-11-05
  • 2018-09-27
  • 2019-01-01
  • 1970-01-01
  • 2018-11-10
  • 1970-01-01
  • 2012-07-20
  • 1970-01-01
相关资源
最近更新 更多