java TrueLicense实现 实现License授权许可和验证
warning:
这篇文章距离上次修改已过209天,其中的内容可能已经有所变动。
import com.google.common.collect.ImmutableMap;
import com.google.common.io.Files;
import com.google.common.primitives.Bytes;
import com.google.common.primitives.Ints;
import com.google.common.primitives.Longs;
import com.google.common.primitives.Shorts;
import org.truelicense.Base62;
import org.truelicense.LicenseManager;
import org.truelicense.LicenseParam;
import org.truelicense.common.Entropy;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
public class LicenseGeneratorAndVerifier {
public static void main(String[] args) throws Exception {
// 生成公钥和私钥对
KeyPair keyPair = generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
PrivateKey privateKey = keyPair.getPrivate();
// 生成许可证
File licenseFile = new File("license.lic");
generateLicense(licenseFile, publicKey, privateKey, "user", "product", new Date());
// 加载许可证
LicenseManager licenseManager = new LicenseManager(publicKey);
licenseManager.load(licenseFile, new MyLicenseParam());
// 验证许可证
if (licenseManager.isValid()) {
System.out.println("许可证有效");
} else {
System.out.println("许可证无效");
}
}
private static KeyPair generateKeyPair() throws NoSuchAlgorithmException {
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(1024);
return keyGen.generateKeyPair();
}
private static void generateLicense(File licenseFile, PublicKey publicKey, PrivateKey privateKey,
String subject, String product, Date firstAvaliableDate) throws Exception {
Properties props = new Properties();
props.setProperty("subject", subject);
props.setProperty("issuer", "MyLicensingAuthority");
props.setPr
评论已关闭