📄 licenseauth.java
字号:
package com.richeninfo.license;
import java.io.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author xiaolie
* @version 1.0
*/
public class LicenseAuth {
private LicenseKeyPair keyPair;
private long modifiedTime;
private long period = 0L;
//private String pubKey;
private int p2;
private int p3;
private TMng tmng;
private String name;
private boolean neverRegister = false;
public LicenseAuth(String name) throws Exception{
try {
this.name = name;
keyPair = LicenseKeyPair.loadFromeFile(name);
File f = new File(LicenseKeyPair.properties.getProperty("java.home") + "/" + "License.data");
modifiedTime = f.lastModified();
//pubKey = keyPair.getPubKey();
//System.out.println("pubKey=" + pubKey);
period = keyPair.getP1()*24L*60L*60L*1000L;
p2 = keyPair.getP2();
p3 = keyPair.getP3();
} catch (NotRegisterException ne) {
neverRegister = true;
} catch (Exception e) {
System.out.println("LicenseAuth.LicenseAuth err=" + e.toString());
}
tmng = TMng.getTMng(name);
//System.out.println("TMng.pubKey=" + tmng.getPubKey());
}
public LicenseAuth(String name, String path) throws Exception{
this(name);
if (keyPair != null) {
keyPair.path = path;
}
}
public int getP2() {
return p2;
}
public int getP3() {
return p3;
}
public long getPeriod() {
return period;
}
public boolean isLicensed() {
try {
if (keyPair == null) {
System.out.println("isLicensed() false 1");
return false;
}
if (!keyPair.isRightSn()) {
System.out.println("isLicensed() false 2");
return false;
}
if (keyPair.getModifiedTime() != modifiedTime) {
System.out.println("isLicensed() false because 3");
return false;
}
return true;
} catch (Exception e) {
e.printStackTrace(System.out);
}
System.out.println("isLicensed() false 4");
return false;
}
public boolean register(String sn, String path) {
try {
LicenseKeyPair key = new LicenseKeyPair(name, tmng.getPubKey(), sn, path);
if (key.isRightSn()) {
key.saveToFile();
period = key.getP1()*24L*60L*60L*1000L;
p2 = key.getP2();
p3 = key.getP3();
modifiedTime = key.getModifiedTime();
if (neverRegister) {
tmng.bd();
}
keyPair = key;
return true;
} else {
return false;
}
} catch (Exception e) {
e.printStackTrace(System.out);
}
return false;
}
public boolean isExpire() {
long passTime = tmng.getPassTime();
if (keyPair == null) return true;
if (keyPair.getP1() > 9000) return false;
if(passTime > period) {
return true;
} else {
return false;
}
}
public String getPubkey() {
return tmng.getPubKey();
}
public int getRemainDays() {
if (keyPair == null) return 0;
if (keyPair.getP1() >= 9000) return 9999;
return (int)((period - tmng.getPassTime())/(24L*60L*60L*1000L));
}
public static void main(String[] args) throws Exception {
if (args.length < 2)
System.out.println("Usage: java com.richeninfo.license.LicenseAuth productName, sn");
//LicenseAuth auth = new LicenseAuth("SGrid");
LicenseAuth auth = new LicenseAuth(args[0]);
System.out.println("is licensed:" + (auth.isLicensed()?"true":"false"));
//boolean b = auth.register("LCKDOAEJLMLIBOOVHTKRKNAO", "");//1111,0,0
boolean b = auth.register(args[1], "");//1111,0,0
System.out.println("register:" + (b?"success":"fail") +
" period=" + auth.getPeriod()/(24L*60L*60L*1000L) +
" p2=" + auth.getP2() +
" p3=" + auth.getP3());
//System.out.println(" period=" + auth.getPeriod()/(24L*60L*60L*1000L) +
// " group Num=" + auth.getGroupNum() +
// " user Num=" + auth.getUserNum());
/*
LicenseAuth auth = new LicenseAuth();
boolean isLicensed = false;
boolean isExpire = false;
int remainingDays = 30;
if (auth.isLicensed()) {
isLicensed = true;
} else {
isLicensed = false;
if (auth.isExpire()) {
isExpire = true;
} else {
isExpire = false;
remainingDays = auth.getRemainDays();
}
}
*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -