PyInstaller生成的.exe文件中存储的密码是否安全?
硬编码凭证在PyInstaller打包的exe中存在被窃取的风险
是的,你脚本里的硬编码凭证完全有可能被窃取,原因如下:
- PyInstaller本质只是把Python字节码、依赖库和轻量Python解释器打包成一个可执行文件,并没有对代码做真正的“加密保护”。你用记事本看不到可读凭证,是因为里面的代码是编译后的字节码(.pyc格式),但这类字节码可以通过
uncompyle6、pycdc等工具轻松反编译成接近原脚本的可读代码,硬编码的凭证会直接暴露出来。 - 就算你使用了PyInstaller的
--key选项对字节码加密,也不是绝对安全。解密所需的密钥会被嵌入到exe文件中,有经验的逆向工程师可以通过分析exe的运行流程提取出密钥,进而解密字节码获取凭证。
建议的改进方案
- 绝对不要硬编码凭证:不管是源码还是打包后的exe,硬编码敏感信息都是不安全的做法。
- 改用运行时动态获取凭证的方式:
- 让用户在程序启动时手动输入凭证;
- 读取本地经过加密的配置文件(需要用户设置独立的解密密码);
- 借助系统原生的密钥管理服务(比如Windows凭据管理器、macOS钥匙串)来存储和读取凭证。
- 如果必须打包含敏感信息的代码,用
--key选项可以增加一点逆向门槛,但不要依赖它来保证凭证的安全。
内容的提问来源于stack exchange,提问作者David 54321
相关产品推荐
相关产品推荐

