XJar-Maven-Plugin
XJar-Maven-Plugin — это оболочка Maven Plugin для XJar, которая позволяет более удобно интегрировать XJar. GitHub: https://github.com/core-lib/xjar-maven-plugin
Что такое XJar
XJar — это решение для создания и динамического дешифрования программ на основе шифрования ресурсов JAR-пакета и расширения ClassLoader, которое предотвращает утечку исходного кода или его реверс-инжиниринг. Оно поддерживает безопасное шифрование запуска Spring Boot JAR и обычных JAR. Для получения дополнительной документации см.: XJar (https://github.com/core-lib/xjar).
Зависимости среды
JDK 1.7 +
Этапы интеграции
<project>
<!-- Настройка jitpack.io плагина репозитория -->
<pluginRepositories>
<pluginRepository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</pluginRepository>
</pluginRepositories>
<!-- Добавление XJar Maven плагина -->
<build>
<plugins>
<plugin>
<groupId>com.github.core-lib</groupId>
<artifactId>xjar-maven-plugin</artifactId>
<version>4.0.1</version>
<executions>
<execution>
<goals>
<goal>build</goal>
</goals>
<phase>package</phase>
<configuration>
<password>io.xjar</password>
<!-- Необязательно
<algorithm/>
<keySize/>
<ivSize/>
<includes>
<include/>
</includes>
<excludes>
<exclude/>
</excludes>
<sourceDir/>
<sourceJar/>
<targetDir/>
<targetJar/>
-->
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Также можно выполнить XJar плагин отдельно с помощью команды Maven:
mvn xjar:build -Dxjar.password=io.xjar
mvn xjar:build -Dxjar.password=io.xjar -Dxjar.targetDir=/directory/to/save/target.xjar
Однако обычно рекомендуется автоматически выполнять XJar плагин при сборке проекта, чтобы автоматически создавать зашифрованный пакет во время сборки.
mvn clean package -Dxjar.password=io.xjar
mvn clean install -Dxjar.password=io.xjar -Dxjar.targetDir=/directory/to/save/target.xjar
Настоятельно рекомендуется
Настоятельно не рекомендуется указывать пароль в конфигурации xjar-maven-plugin в pom.xml, так как это может привести к сохранению пароля в файле pom.xml в зашифрованном пакете, что делает его уязвимым для раскрытия. Рекомендуется использовать команду Maven для указания ключа шифрования.
Примечание
Не совместимо с spring-boot-maven-plugin с параметрами executable = true и embeddedLaunchScript.
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- Необходимо удалить параметры executable и embeddedLaunchScript, в настоящее время невозможно поддерживать шифрование для этого режима Jar. Возможно, поддержка будет добавлена позже. -->
<configuration>
<executable>true</executable>
<embeddedLaunchScript>...</embeddedLaunchScript>
</configuration>
</plugin>
Описание параметров
Параметр | Имя параметра команды | Описание параметра | Тип параметра | Значение по умолчанию | Пример значения |
---|---|---|---|---|---|
password | -Dxjar.password | Строка пароля | String | Обязательно | Любая строка, например io.xjar |
algorithm | -Dxjar.algorithm | Название алгоритма шифрования | String | AES/CBC/PKCS5Padding | Встроенные алгоритмы шифрования JDK, такие как AES/CBC/PKCS5Padding и DES/CBC/PKCS5Padding |
keySize | -Dxjar.keySize | Длина ключа | int | 128 | Зависит от алгоритма шифрования, например 56, 128, 256 |
ivSize | -Dxjar.ivSize | Размер вектора инициализации | int | 128 | Зависит от алгоритма шифрования, например 128 |
sourceDir | -Dxjar.sourceDir | Каталог исходного jar | File | ${project.build.directory} | Каталог файлов |
sourceJar | -Dxjar.sourceJar | Имя исходного jar | String | ${project.build.finalName}.jar | Имя файла |
targetDir | -Dxjar.targetDir | Каталог целевого jar | File | ${project.build.directory} | Каталог файлов |
targetJar | -Dxjar.targetJar | Имя целевого jar | String | ${project.build.finalName}.xjar | Имя файла |
includes | -Dxjar.includes | Выражение пути к ресурсам, которые нужно зашифровать | String[] | Нет | com/company/project/** , mapper/*Mapper.xml , поддерживает выражения Ant |
excludes | -Dxjar.excludes | Выражение пути к ресурсам, которые не нужно шифровать | String[] | Нет | static/** , META-INF/resources/** , поддерживает выражения Ant |
4.0.1
4.0.0
2.0.9
2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v1.1.0
v1.0.9
v1.0.8
v1.0.7
v1.0.6
v1.0.5
v1.0.4
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )