1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/core-lib-xjar-maven-plugin

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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
  • При указании алгоритма шифрования длина ключа и длина вектора должны быть в диапазоне, поддерживаемом алгоритмом. Конкретные значения длины ключа и вектора для выбранного алгоритма шифрования можно найти в интернете самостоятельно.
  • Если используются параметры includes и excludes, шифруются ресурсы, находящиеся в области includes, но исключаются ресурсы из области excludes.

Версия

  • 4.0.1

    1. Совместимость с JDK-9 и более поздними версиями.
  • 4.0.0

    1. Поддержка шифрования и дешифрования с заполнением.
    2. Поддержка шифрования и дешифрования с IV-параметром.
    3. Обновление запускающего модуля.
    4. Удаление опасного режима.
    5. Исправление орфографических ошибок.
    6. Предоставление интеллектуального шифратора/дешифратора для предотвращения ошибок при использовании.
    7. Удаление избыточных методов шифрования/дешифрования.
    8. Исправление проблемы, когда проверка безопасности nested-lib не проходила, даже если внутренние ресурсы не были зашифрованы.
    9. Отказ от командного запуска и ручного ввода пароля, сохранение только режима запуска Go.
    10. Повышение читаемости API шифрования/дешифрования в стиле Fluent.
  • 2.0.9

    • Исправление проблем с загрузкой классов XJar, у которых нет ProtectionDomain и CodeSource.
    • Устранение проблем с шифрованием и запуском на машинах с разными наборами символов.
  • 2.0.8

    • Удаление префикса «v» из номера версии.
  • v2.0.7

    • Поддержка удаления ресурсов после шифрования.
  • v2.0.6

    • Решение проблемы невозможности точного определения MANIFEST.MF при запуске нескольких jar-пакетов.
  • v2.0.5

    • Обновление зависимости LoadKit до последней версии.
    • Исправление проблемы с неправильным сопоставлением ANT-выражений с подстановочным знаком **/*.
  • v2.0.4

    • Решение проблемы с поддержкой опасного режима в системе Ubuntu.
  • v2.0.3

    • Поддержка ковариации фильтров.
    • Параметр includes и параметр excludes работают одновременно: ресурсы шифруются в пределах includes, но не в пределах excludes.
  • v2.0.2

    • Добавление способа запуска с использованием файла ключей для собственных jar-файлов, решение проблемы невозможности ввода пароля через консоль при запуске в фоновом режиме с помощью nohup или javaw.
  • v2.0.1

    • Добавление способа запуска с использованием файла ключей, решение проблемы невозможности ввода пароля через консоль при запуске в фоновом режиме с помощью nohup или javaw.
    • Исправление ошибки, связанной с сохранением информации о ключе в MANIFEST.MF после дешифровки в опасном режиме.
  • v2.0.0

    • Обновление до версии 2.0.0, соответствие версии xjar.
  • v1.1.0

    • Поддержка Spring-Boot для упаковки в ZIP-формате, запуск с использованием внешних зависимостей.
    • Исправление проблемы невозможности запуска без шифрования ресурсов.
  • v1.0.9

    • Поддержка опасного режима шифрования, реализация запуска без пароля, но рекомендуется использовать с осторожностью!
  • v1.0.8

    • Предотвращение неправильного использования фильтров, приводящего к невозможности запуска.
  • v1.0.7

    • Исправлены ошибки.
  • v1.0.6

    • Интеграция интеллектуального анализа для шифрования обычных jar-проектов или модулей и spring boot проектов или модулей в один плагин, который не требует внимания к типу текущего проекта или модуля при настройке.
    • Дружественное уведомление о невозможности шифрования jar.
    • Обновление XJar до версии v1.1.0.
  • v1.0.5

    • Ссылка на новую версию XJar (v1.0.9), исправление проблемы с невозможностью запуска различных версий Spring-Boot после шифрования.
  • v1.0.4

    • Первый официальный выпуск.

Протокол

Apache-2.0

Присоединиться к группе

QQ 950956093

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

XJar-Maven-Plugin — это Maven Plugin для XJar, который можно выполнить с помощью команды Maven или встроить в жизненный цикл сборки Maven для более удобной интеграции XJar. Расширить Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/core-lib-xjar-maven-plugin.git
git@gitlife.ru:oschina-mirror/core-lib-xjar-maven-plugin.git
oschina-mirror
core-lib-xjar-maven-plugin
core-lib-xjar-maven-plugin
master