我有一个困境。基本上,我给我的一群朋友提供了一个程序,它使用了我不想让组外的任何人知道的源代码。我们都知道Java在做任何级别的混淆方面都非常糟糕,因为大多数混淆工具只是重命名对象,混淆代码等。我已经使用了这样的工具,但老实说,我想尽可能地增强程序的安全性。
由于该应用程序需要用户名、密码和其他标识符才能登录到它使用的服务器,我开始想是否可以为用户生成唯一的AES密钥来保护JAR文件。
基本上,在运行某种启动器以登录时,启动器应用程序可以从服务器请求AES密钥,并使用它来解密已从服务器下载的受保护的JAR文件。密钥对于每个用户完全是唯一的,这意味着服务器必须为每个用户以不同方式加密JAR文件。
现在,我知道这听起来有点疯狂。但由于这是如此低级的事情,我需要知道是否有一种方法可以从任何类型的流中同时解密和运行JAR文件。或者,如果这不可能,那么解密文件、运行它,然后重新加密它是否合理?
由于该应用程序需要用户名、密码和其他标识符才能登录到它使用的服务器,我开始想是否可以为用户生成唯一的AES密钥来保护JAR文件。
基本上,在运行某种启动器以登录时,启动器应用程序可以从服务器请求AES密钥,并使用它来解密已从服务器下载的受保护的JAR文件。密钥对于每个用户完全是唯一的,这意味着服务器必须为每个用户以不同方式加密JAR文件。
现在,我知道这听起来有点疯狂。但由于这是如此低级的事情,我需要知道是否有一种方法可以从任何类型的流中同时解密和运行JAR文件。或者,如果这不可能,那么解密文件、运行它,然后重新加密它是否合理?