在maven中混淆字符串然后在java中解码

时间:2015-02-16 13:45:34

标签: java maven

我有一个从shell脚本启动的java应用程序:run.sh。 shell脚本是构建的java应用程序的一部分,它经常变得过时,或者是错误的版本。

因此,我在构建时将支持的构建编写到shell脚本中:

<plugin>
    <groupId>com.google.code.maven-replacer-plugin</groupId>
    <artifactId>replacer</artifactId>
    <version>1.5.3</version>
    <executions>
        <execution>
            <phase>prepare-package</phase>
            <goals>
                <goal>replace</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <file>${basedir}/run.sh.template</file>
        <outputFile>${basedir}/run.sh</outputFile>
        <replacements>
            <replacement>
                <token>BUILD_VERSION</token>
                <value>${VERSION}B${BUILD_NUMBER}</value>
            </replacement>
        </replacements>
    </configuration>
</plugin>

在run.sh.template脚本中,执行以下操作:

export VERSION=BUILD_VERSION

使用以下更新将其写入新文件run.sh:

export VERSION=MYAPP1.9B199

java应用程序然后在运行时检查新导出的VERSION环境变量,以查看它是否与构建应用程序的版本匹配。如果他们不匹配,则会发出警告。

这一切都很完美,但我想混淆构建号,然后将其解码回java中的真实版本,所以它看起来像:

export VERSION=FSDHJ£$%(£$"JKSDF

然后在java中我需要能够将该字符串解码回构建号。我想阻止人们破解run.sh脚本以使其工作。

0 个答案:

没有答案