您的位置:

TrueLicense:开源、易用、高效的许可证管理工具

一、简介

TrueLicense是一款基于Java的许可证管理工具,由于其简单易用、支持多种许可证方式以及轻量级的特点,越来越受到Java开发人员的关注。

二、特点

1、开源:TrueLicense源代码完全开放,可以自由修改,满足各种许可证需求。

2、易用:TrueLicense提供简单易懂的许可证配置文件,并且支持JDK6及以上版本。只需通过添加依赖和简单的配置即可完成许可证的管理。

3、高效:TrueLicense提供高效的加密解密算法,保护您的应用程序不被黑客攻击。

三、许可证方式

1、基于URL的许可证:在应用程序启动时,TrueLicense会自动从指定的URL地址下载并验证许可证。

2、基于加密密钥的许可证:在应用程序启动时,TrueLicense会验证密钥是否正确,以确定应用程序是否可以使用。

3、基于硬件参数的许可证:TrueLicense会对应用程序所在设备的硬件参数进行加密并验证,以确定应用程序是否可以使用。


    //基于URL的许可证配置文件
    license.url=http://www.example.com/license.xml
    license.subject=product1

    //基于加密密钥的许可证配置文件
    license.key.store=classpath:/keys/license.keystore
    license.key.alias=license
    license.key.store.password=licenseStorePassword
    license.key.alias.password=licenseKeyPassword

    //基于硬件参数的许可证配置文件
    license.hardness=123456
    license.subject=product1

四、快速上手

1、添加TrueLicense依赖:


    <dependency>
         <groupId>org.truelicense</groupId>
         <artifactId>truelicense-core</artifactId>
         <version>4.3.0.Final</version>
    </dependency>

2、添加TrueLicense插件:


    <build>
        <plugins>
            <plugin>
                <groupId>org.truelicense</groupId>
                <artifactId>truelicense-maven-plugin</artifactId>
                <version>4.3.0.Final</version>
                <executions>
                    <execution>
                        <id>generate-key</id>
                        <goals>
                            <goal>generate-key</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>encrypt-license</id>
                        <goals>
                            <goal>encrypt-license</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <storepass>licenseStorePassword</storepass>
                    <keypass>licenseKeyPassword</keypass>
                </configuration>
            </plugin>
        </plugins>
    </build>

五、使用示例

1、生成许可证:


    // 设置许可证生成信息
    LicenseManager licenseManager= new LicenseManager();
    LicenseParam licenseParam = new LicenseParam();
    LicenseContent licenseContent = new LicenseContent();
    licenseContent.setSubject("product1");
    licenseContent.setIssued(new Date());
    licenseContent.setNotBefore(new Date());
    Calendar c = Calendar.getInstance();
    c.setTime(licenseContent.getNotBefore());
    c.add(Calendar.DAY_OF_MONTH,30);//设置许可证使用期限为30天
    licenseContent.setNotAfter(c.getTime());
    licenseContent.setConsumerType("user");
    licenseContent.setConsumerAmount(1);
    licenseContent.setInfo("This is a license for product1");
    licenseContent.setHolder("example");
   
    //生成许可证文件
    licenseManager.store(licenseContent, "/path/to/license.lic", licenseParam);

2、验证许可证:


    //读取许可证文件并验证
    LicenseManager licenseManager= new LicenseManager();
    LicenseParam licenseParam = new LicenseParam();
    licenseParam.setSubject("product1");
    License license=null;
    try {
        license=licenseManager.verify("/path/to/license.lic", licenseParam);
        //许可证验证通过
    } catch (Exception e) {
        //许可证验证失败
    }

六、结语

TrueLicense是一款优秀的Java许可证管理工具,它提供了多种许可证方式以及简单易用、高效、开源等优点。它可以帮助Java开发人员轻松地实现应用程序的许可证管理,保护应用程序的版权和利益。