java生成license_使用truelicense实现用于JAVA工程license机制(包括license生成和验证)...

本文档详细介绍了如何使用Truelicense库在Java工程中实现license的生成和验证过程。首先,讲解了license授权机制的原理,接着通过keytool生成密钥对,然后展示了生成和验证license的主要代码,包括`LicenseManagerHolder`、`CreateLicense`和`VerifyLicense`类。此外,还提供了param.properties文件的配置示例,用于设置密钥和许可证内容。整个流程包括生成密钥对、创建license、验证license和配置参数文件四个步骤。
摘要由CSDN通过智能技术生成

开发的软件产品在交付使用的时候,往往会授权一段时间的试用期,这个时候license就派上用场了。不同于在代码中直接加上时间约束,需要重新授权的时候使用license可以避免修改源码,改动部署,授权方直接生成一个新的license发送给使用方替换掉原来的license文件即可。下面将讲述使用truelicense来实现license的生成和使用。Truelicense是一个开源的证书管理引擎,详细介绍见https://truelicense.java.net/

一、首先介绍下license授权机制的原理:

1、 生成密钥对,方法有很多。

2、 授权者保留私钥,使用私钥对包含授权信息(如使用截止日期,MAC地址等)的license进行数字签名。

3、 公钥给使用者(放在验证的代码中使用),用于验证license是否符合使用条件。

接下来是本例制作license的具体步骤:

二、第一步:使用keytool生成密钥对

以下命令在dos命令行执行,注意当前执行目录,最后生成的密钥对即在该目录下:

1、首先要用KeyTool工具来生成私匙库:(-alias别名 –validity 3650表示10年有效)

keytool -genkey -alias privatekey -keystoreprivateKeys.store -validity 3650

2、然后把私匙库内的公匙导出到一个文件当中:

1.keytool -export -alias privatekey -file certfile.cer -keystore privateKeys.store

3、然后再把这个证书文件导入到公匙库:

1.keytool -import -alias publiccert -file certfile.cer -keystore publicCerts.store

最后生成文件privateKeys.store、publicCerts.store拷贝出来备用。

三、第二步:生成证书(该部分代码由授权者独立保管执行)

1、 首先LicenseManagerHolder.java类:

01.package cn.melina.license;

02.import de.schlichtherle.license.LicenseManager;

03.import de.schlichtherle.license.LicenseParam;

04.

05./**

06.* LicenseManager??????

07.* @author melina

08.*/

09.public class LicenseManagerHolder {

10.

11.private static LicenseManager licenseManager;

12.

13.public static synchronized LicenseManager getLicenseManager(LicenseParam licenseParams) {

14.if (licenseManager ==null) {

15.licenseManager =new LicenseManager(licenseParams);

16.}

17.return licenseManager;

18.}

19.}

2、 然后是主要生成license的代码CreateLicense.java:

001.package cn.melina.license;

002.

003.import java.io.File;

004.import java.io.IOException;

005.import java.io.InputStream;

006.import java.text.DateFormat;

007.import java.text.ParseException;

008.import java.text.SimpleDateFormat;

009.import java.util.Properties;

010.import java.util.prefs.Preferences;

011.import javax.security.auth.x500.X500Principal;

012.import de.schlichtherle.license.CipherParam;

013.import de.schlichtherle.license.DefaultCipherParam;

014.import de.schlichtherle.license.DefaultKeyStoreParam;

015.import de.schlichtherle.license.DefaultLicenseParam;

016.import de.schlichtherle.license.KeyStoreParam;

017.import de.schlichtherle.license.LicenseContent;

018.import de

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值