【问题标题】:SyntaxError: Non-UTF-8 while executing a python script that is encrypted with a passwordSyntaxError:执行使用密码加密的 python 脚本时出现非 UTF-8
【发布时间】:2020-01-06 23:10:28
【问题描述】:

我有一个 python 脚本,我用密码(使用 vim)对其进行了加密,这样没有人可以查看源代码并尝试在 Jenkins 的远程服务器上运行脚本。

执行命令时:

python deploy.sh

我收到以下错误

SyntaxError: Non-UTF-8 code starting with '\xe0' in file deploy.py on line 1, but no encoding declared

我确实添加了# -*- coding:utf-8 -*-这一行

问题是运行具有密码的 python 脚本的正确方法是什么,或者是加密脚本的更好方法,这样我的源代码就被隐藏了。 同样,我不想打开文件,只是执行 python 脚本。

有什么建议,请指教。

【问题讨论】:

  • “用密码加密(使用 vim)”?诶? Python 无法执行加密的代码;它需要实际来源,而不是仅在解密后才成为该来源的密文。加密后您无法运行已编译的可执行文件(并且有一些密文而不是有效的 CPU 指令);同样的原则也适用。
  • ...无论如何,如果您想争辩说它应该是可能的,您将需要记录您使用的声称生成加密但可执行脚本的精确机制. (也就是说,我向你保证,无论它使用什么加密,任何有能力在实践中实际运行脚本的人都可以轻松逆转)。

标签: python python-3.x


【解决方案1】:

你不能在 python 中做到这一点。如果你想用 python 写一些东西并且你的用户没有看到你,你就不能分发代码。 您可以将其设为服务或 Web 应用程序并将其托管在服务器上。

或者你可以尝试编译它...https://medium.com/@xpl/protecting-python-sources-using-cython-dcd940bb188e

【讨论】:

    猜你喜欢
    • 2019-09-26
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2023-04-06
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多