Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java有.class文件,它是可执行文件/二进制文件。同样,Python或Javascript的功能是什么?_Javascript_Python - Fatal编程技术网

Java有.class文件,它是可执行文件/二进制文件。同样,Python或Javascript的功能是什么?

Java有.class文件,它是可执行文件/二进制文件。同样,Python或Javascript的功能是什么?,javascript,python,Javascript,Python,在java.class文件中,隐藏了实际的源代码,并且只能执行。我不熟悉Python和JavaScript语言,这些语言如何保护源代码?它们是否也有类似于源代码中不可见的.class文件?Python相当于Java的。class文件是.pyc文件。但这比文件更容易反编译(翻译回Python)。Javascript作为Javascript分发,而不是编译。虽然它通常是缩小的性能 保护源代码的方式是使用许可证和版权法。您可能正在寻找代码混淆器,但这只会阻止偶然的黑客,并且只会减慢某些人的速度。现在,

在java.class文件中,隐藏了实际的源代码,并且只能执行。我不熟悉Python和JavaScript语言,这些语言如何保护源代码?它们是否也有类似于源代码中不可见的.class文件?

Python相当于Java的
。class
文件是
.pyc
文件。但这比
文件更容易反编译(翻译回Python)。Javascript作为Javascript分发,而不是编译。虽然它通常是缩小的性能


保护源代码的方式是使用许可证和版权法。您可能正在寻找代码混淆器,但这只会阻止偶然的黑客,并且只会减慢某些人的速度。现在,即使是使用高级DRM的大预算游戏也会很快被破解。

我认为您在这里制造了相当多的混乱


首先,
.class
文件不是用于“代码保护”(稍后我们将了解这意味着什么),而是用于执行的编译文件。简单地说,您不能执行
.java
文件,它们必须在
.class
文件中编译。这是因为Java被编译成字节码(Java虚拟机的机器语言),由JVM执行。Javascript和Python都可以在不编译的情况下执行(有Javascript/Python解释器直接运行
.js
.py
文件)。Python中有一些中间文件,扩展名为
pyc
,它们与
.class
文件类似,但它们同样不利于保护代码

现在,如果您希望有人能够执行您的代码而不必阅读它,您必须记住两件事:

  • 反编译器/除臭剂等存在,并非常擅长其工作
  • 在Java中,JVM执行编译后的代码,Python和Javascript的解释器在编写代码时执行代码 您可以尝试混淆代码,但任何人都可以使用正确的工具对其进行除臭。这是否意味着Python代码比Java代码受到的保护更少?不,您可以反编译
    .class
    .jar
    文件来读取源代码(事实上,每次导航到库类或方法的实现时,它都会在IntelliJ Idea中自动完成)

    因此,如果您希望人们使用您的软件,但不希望他们复制,您有两种方法:

  • 不要分发软件,走SaaS的道路
  • 找一位好律师,向他们咨询如何根据当地法律保护您的产品
    .class
    文件不是源代码保护机制。
    .class
    文件是源代码保护机制,那么您的实际问题是什么?隐藏源代码的唯一方法是不分发源代码(即将其作为服务提供)。当然,客户端Javascript是不可能的。为了保护Python/Java代码,请将其转换为网页并部署在某些服务器上。然后用户可以使用它,但他们无法访问带有代码的文件。使用JavaScript你不能隐藏代码。请注意,版权和许可证是两个截然不同的东西。第一个(至少在美国)自动授予作者或其雇主。你通常需要为第二个选择一个,你解释得很好。非常感谢。