我正在用python制作密码管理器,但我想到将主密码或安全密钥的哈希值直接放入程序中,然后我将其转换为exe并使用它。所以我的问题是,在使用pyinstaller或py2exe模块将其转换为exe后,任何人都可以将其重新转换为python代码并查看它,或者在将其转换为exe后可以看到我的python代码。我知道我这样做不是一个很好的练习,但这也是出于我的好奇心。
是的,他们几乎肯定会。
为了创建exe
, PyInstaller基本上将你的文件编译成.pyc
文件,将它们与任何其他资源捆绑在一起。当您运行该文件时,它将它们解压缩到一个临时文件夹中并运行它们。您可以从PyInstaller的文档中了解有关该过程的更多信息。知道自己在做什么的人可以在应用程序运行时查看所有这些提取的文件,或者只是使用pyinstxtractor
等工具自己提取。哈希本身的字符串仍然会出现在.pyc
文件中,并且知道要寻找哪种模式的人可能不会太麻烦地找到它们。
如果您想要查看一些选项以使其更困难,您可以探索PyInstaller中的一些建议选项,例如编译到Cython或添加密钥。
但是如果你只存储哈希值,他们只能得到哈希值。它们是否可以派生出原始密钥取决于您使用的散列算法。