是否可以缩小javascript之类的python代码?

时间:2018-09-08 01:53:02

标签: python minify

Python是一种脚本语言。很难保护python代码不被复制。不需要100%的保护,但至少可以放慢那些恶意的人的速度。是否可以按照今天执行JavaScript前端代码的方式来缩小/丑化python代码?

编辑:python代码将在Raspberry Pi中使用,而不是在服务器中使用。在树莓派上,任何人都可以取出SD卡并获得对python代码的访问权限。

4 个答案:

答案 0 :(得分:2)

当然,您可以对其进行丑化,但是鉴于python依靠缩进来表示语法,因此您无法进行等效的缩小(在JS中,这主要取决于删除所有空白)。

重点在于,但是JS被精简以使其下载速度更快,而不是对其进行混淆。

答案 1 :(得分:2)

我会回答我自己的问题。

我发现以下可以完成此工作的软件工具。我没有尝试过,所以无法评论它们的有效性。欢迎评论其有效性。

https://liftoff.github.io/pyminifier/

https://mnfy.readthedocs.io/en/latest/

答案 2 :(得分:2)

  1. 从仅分发pyc文件开始怎么办?这些是由Python解释器出于性能原因而创建的文件-它们的加载时间比.pys快-但是对于临时用户而言,它们很难被解密。

python -m compileall .

  1. 通过使用Cython编译python src增强安全性。要“ cythonize”您的代码,请在每个模块上运行Cython + GCC。必须保留 init .py文件,以确保模块导入正常进行。一个愚蠢的Hello world示例:

$ cython helloworld.py -o helloworld.c $ gcc -shared -pthread -fPIC -fwrapv -O2 -Wall -fno-strict-aliasing -I/usr/include/python3.7 -o helloworld.so helloworld.c

YMMV使用这种方法;我遇到了使用不同模块的各种陷阱。

答案 3 :(得分:1)

python是在服务器端执行的。有时候故意混淆代码(看看perl混淆;)很有趣,但是对于服务器端代码则永远不需要。

如果您想对某人隐藏python,但他们已经可以访问该文件所在的目录和文件,那么与代码混淆相比,您面临的问题更大。