Java,加载jar字节并使用它

Java,加载jar字节并使用它,java,jar,Java,Jar,有没有一种方法可以加载加密文件(即jar文件)、解密文件(从而获得真正的字节数组)并使用它,而无需在文件系统上创建文件并启动它 byte[] jarBytes=Decrypter.decrypt("my\\encrypted\\jar\\file"); //use jarBytes to execute an application without create a real File with this bytes... 像这样 Cipher c = Cipher.getIns

有没有一种方法可以加载加密文件(即jar文件)、解密文件(从而获得真正的字节数组)并使用它,而无需在文件系统上创建文件并启动它

byte[] jarBytes=Decrypter.decrypt("my\\encrypted\\jar\\file");
//use jarBytes to execute an application without create a real File with this bytes...
像这样

       Cipher c = Cipher.getInstance(ALGORITHM);
       c.init(Cipher.DECRYPT_MODE, key);
       byte[] decValue = c.doFinal(data);
像这样

       Cipher c = Cipher.getInstance(ALGORITHM);
       c.init(Cipher.DECRYPT_MODE, key);
       byte[] decValue = c.doFinal(data);
当然

输入流可以来自资源(即,在类路径上)。字节可以根据需要进行操作

有关从目录加载jar的示例,请参见。您的版本将几乎相同,除了字节最初来自何处,并且还有一个额外的转换步骤

如果有人对你的代码感兴趣,他们要么a)对你的类加载器进行反向工程,要么b)按原样使用你的类加载器,不用担心对加密代码进行反向工程。。。不过祝你好运:)

当然

输入流可以来自资源(即,在类路径上)。字节可以根据需要进行操作

有关从目录加载jar的示例,请参见。您的版本将几乎相同,除了字节最初来自何处,并且还有一个额外的转换步骤


如果有人对你的代码感兴趣,他们要么a)对你的类加载器进行反向工程,要么b)按原样使用你的类加载器,不用担心对加密代码进行反向工程。。。但祝你好运:)

+1因为这种策略毫无意义(至少是为了“保护达科兹”。@AndrewThompson感谢SSCE;我经常向人们指出它(至少是.org镜像:)@Dave Newton:谢谢,但我不是在寻找类加载器,而是一个简单的“启动器”,它在解密jar文件后执行jar文件。现在我必须将解密后的jar保存为临时文件来启动它,我正在寻找一种不保存文件而将文件“保存在内存中”的方法。@blow是的,这是一个类加载器。请参阅+1,了解这种策略毫无意义的想法(至少是为了“保护达科兹”。@AndrewThompson感谢SSCCE;我经常向人们指出它(至少是.org镜像:)@Dave Newton:谢谢,但我不是在寻找类加载器,而是一个简单的“启动器”,它在解密jar文件后执行jar文件。现在我必须将解密后的jar保存为临时文件来启动它,我正在寻找一种不保存文件而将文件“保存在内存中”的方法。@blow是的,这是一个类加载器。看见