在 python 脚本中隐藏密码(仅限不安全的混淆)

新手上路,请多包涵

我有一个创建 ODBC 连接的 python 脚本。 ODBC 连接是使用连接字符串生成的。在此连接字符串中,我必须包含此连接的用户名和密码。

是否有一种简单的方法可以在文件中隐藏此密码(只是在我编辑文件时没有人可以读取密码)?

原文由 bernhardrusch 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

Base64 编码 在标准库中,可以阻止肩冲浪者:

 >>> import base64
>>>  print(base64.b64encode("password".encode("utf-8")))
cGFzc3dvcmQ=
>>> print(base64.b64decode("cGFzc3dvcmQ=").decode("utf-8"))
password

原文由 David Webb 发布,翻译遵循 CC BY-SA 4.0 许可协议

这是一个简单的方法:

  1. 创建一个 python 模块——我们称它为 peekaboo.py。
  2. 在 peekaboo.py 中,包括密码和任何需要该密码的代码
  3. 创建编译版本 - peekaboo.pyc - 通过导入此模块(通过 python 命令行等)。
  4. 现在,删除 peekaboo.py。
  5. 您现在可以仅依赖 peekaboo.pyc 愉快地导入 peekaboo。由于 peekaboo.pyc 是字节编译的,因此普通用户不可读。

这应该比 base64 解码更安全——尽管它容易受到 py_to_pyc 反编译器的攻击。

原文由 manyPartsAreEdible 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题