我正在使用python嵌入(python.net in C#)来执行python脚本,我需要确保这些python脚本不会被篡改。这些python脚本可以是.pyc (已编译的)格式。
有办法使这些脚本防篡改吗?.pyc文件可以很容易地解压缩、篡改和重新编译。我看了一下印章,但我相信它需要将python文件冻结到可执行文件中。
欢迎任何帮助。
发布于 2022-05-02 05:35:20
你需要的是签署这些脚本。签署一个文件意味着从一个私钥和那个文件产生一个签名,这个想法是没有私钥就不可能产生相同的签名。然后,您还有一个公钥(可以公开),其唯一目的是验证签名是否与文件匹配。IIRC,这是Windows用于信任软件的相同机制(即。有些软件开发人员受到Windows的信任,当软件具有由受信任的源发出的签名,Windows可以对其进行验证时,我认为它被视为可信的软件)。
这是一个非常常见的加密模式,所以我认为有很多实现它的工具,但其中一个特别好的是GPG。它是免费的,开源的,它有许多语言的绑定,它有很好的文档记录,并且处理所有事情,从创建密钥对到签名等等。这也意味着使用GPG有点复杂,但我发现this post中有人想要验证他们使用GPG在C#中下载的文件,所以可能会有所帮助。
另外,请注意,在另一篇文章中,他们也使用散列检查来确保脚本在下载过程中不会损坏(即。下载错误)。您可以使用签名验证这一点,但是您将无法判断错误是来自于有人故意试图篡改您的代码,还是您只需要重新下载脚本。
https://stackoverflow.com/questions/72080310
复制相似问题