如何将python转换为exe而不保存在exe文件中的字符串? [关闭]
Posted
技术标签:
【中文标题】如何将python转换为exe而不保存在exe文件中的字符串? [关闭]【英文标题】:How to convert python to exe without strings saved in the exe file? [closed] 【发布时间】:2021-12-15 06:12:07 【问题描述】:我想使用 Nuitka/Pyinstaller 将我的 python 项目转换为 Exe 文件,但不幸的是,我在 python 文件中编写的所有字符串都可以通过使用记事本打开 Exe 文件在 Exe 文件中轻松找到.
如何将我的项目转换为 Exe 并完全隐藏 py 文件中保存的字符串和密码?
【问题讨论】:
永远不要保存原始密码。不管在哪里。哈希它们。 nitratine.net/blog/post/how-to-hash-passwords-in-python 我需要保存一个重要的 .json 文件才能使我的项目正常工作。我怎样才能对用户隐藏这个 .json 文件并使其只能被计算机访问? (LTR) @יואבשלו:如果我的电脑可以访问某些东西,我会这样做。 (这可能不适用于您的计算机。) 您应该研究加密模块(例如密码学)并仅提供数据的加密版本。如果您想更进一步,您还可以将数据存储在服务器上并实现身份验证机制以从您正在运行的程序中访问它 【参考方案1】:正如 cmets 所提到的,如果您希望用户仅在您想告诉他们时才知道某事,而不是通过检查二进制文件,您应该尝试对其进行混淆。
如 cmets 中所建议的,实现它的一种方法是通过加密。您可以将 .json 文件转换为字符串,然后使用给定的密码对其进行加密,二进制文件当然会知道。
您也可以,这可能更简单,只需对字符串进行编码,例如在 base 64 中,然后在调用它时再次将其解码。一个小例子如下:
import base64
s = "your json file as string here".encode("utf-8")
encoded = base64.b64encode(s)
现在每个你想使用你解码的字符串:
decoded = base64.b64decode(encoded)
最终用户不应该通过检查二进制文件来使用它。
虽然这是理论,但实际上并不能阻止专家用户弄清楚其中真正写了什么,即使使用加密,如果您持有加密的内容和密钥,那么只需将各个部分放在一起即可。
【讨论】:
以上是关于如何将python转换为exe而不保存在exe文件中的字符串? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用PowerShell将UTF-8字符传递给clip.exe而不转换为另一个字符集?