我有一个带有资源文件夹的 jar 文件,我已经使用Launch4J.
如何保护我的资源不被使用winzip/提取winrar?
我有一个带有资源文件夹的 jar 文件,我已经使用Launch4J.
如何保护我的资源不被使用winzip/提取winrar?
唯一真正的保护是不交付资源!
只要你把资源交给你,它们就可以被提取出来。这可能很困难,但可以提取它们。
最安全的方法是将资源存储在服务器上并以远程方式访问它们。但是,如果资源在客户端计算机上,则可以从内存中提取它们。
您在这里唯一真正的选择是将资源存储为加密数据并在加载到 java 之前解密它们。您可以将加密数据存储为字节数组,并使用某种异或加密。
这是不安全的,您不应在任何资源文件中存储任何重要的密钥、密码或凭据。
我知道几种防止资源提取/读取的方法:
加密您的资源并在运行时动态解密它们,而无需编写临时文件。
从 Internet 加载资源(需要 Internet 连接)。
破坏资源文件的CRC32,这将导致WinZip或WinRAR无法提取您的资源。
将\u0000( \x0)设置为文件名前缀。 NUL 终止符将使 WinZip 或 WinRAR 无法解压缩文件(也无法读取文件名)。
然而,这些都没有增加安全性。资源将能够被解密或提取,这些只是防止标准读取/提取的“简单技巧”。但是拥有足够知识的人将能够绕过它们并修复文件。