| | |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.io.File; |
| | | import java.io.FileOutputStream; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.io.*; |
| | | import java.math.BigInteger; |
| | | |
| | | @RequestMapping("license") |
| | |
| | | public class LicenseController { |
| | | @Resource |
| | | private LicenseService service; |
| | | /** |
| | | * 类加载时初始化sm2的公私钥 |
| | | */ |
| | | final static ECPoint publicKey = SM2.getPublicKey(); |
| | | final static BigInteger privateKey = SM2.getPrivateKey(); |
| | | |
| | | |
| | | /** |
| | | * 检验服务器是否注册,是否已存在序列号 |
| | |
| | | Response model=LicenseController.createLicense(System.currentTimeMillis()+"createTime"+ SerialNumberUtil.getSerialNumber()); |
| | | //同时,将序列号生成时间记录到application域中 |
| | | //getApplication().setAttribute("serialNumberLicenseTime",System.currentTimeMillis()); |
| | | ActionUtil.getApplication().setAttribute("serialNumberLicenseTime",System.currentTimeMillis()); |
| | | //ActionUtil.getApplication().setAttribute("serialNumberLicenseTime",System.currentTimeMillis()); |
| | | return model; |
| | | } |
| | | |
| | |
| | | BigInteger privKey = x.importPrivateKey(realPath+"config/pri_key.ksm"); |
| | | ECPoint pubKey = x.importPublicKey(realPath+"config/pub_key.ksm");*/ |
| | | |
| | | String fileDirName=LicenseController.getRealPath("pub_key.ksm"); |
| | | ECPoint pubKey = x.importPublicKey(fileDirName+"/pub_key.ksm"); |
| | | //旧版本 |
| | | /*String fileDirName=LicenseController.getRealPath("pub_key.ksm"); |
| | | ECPoint pubKey = x.importPublicKey(fileDirName+"/pub_key.ksm");*/ |
| | | //System.out.println("pubKey "+pubKey); |
| | | /*String origin = "Company: Fuguang Electronic\n" |
| | | + "Project:BTS monitor platform\n" |
| | | + "Licence type:Permanent";*/ |
| | | //获取加密列表 |
| | | //System.out.println("origin "+origin); |
| | | byte[] encryptResult = x.encrypt(serialNumber, pubKey); |
| | | //byte[] encryptResult = x.encrypt(serialNumber, pubKey); |
| | | byte[] encryptResult = x.encrypt(serialNumber, publicKey); |
| | | String encrypt = ByteConvertUtil.bytesToHexString(encryptResult); |
| | | //System.out.println("encrypt:"+encrypt); |
| | | return new Response().set(1,encrypt); |
| | |
| | | SM2 x = new SM2(); |
| | | //String realPath = ClassUtils.getDefaultClassLoader().getResource("").getPath(); |
| | | //ECPoint pubKey = x.importPublicKey(realPath + "config/pub_key.ksm"); |
| | | /*//旧版本 |
| | | String fileDirName=LicenseController.getRealPath("pri_key.ksm"); |
| | | BigInteger privKey = x.importPrivateKey(fileDirName + "/pri_key.ksm"); |
| | | BigInteger privKey = x.importPrivateKey(fileDirName + "/pri_key.ksm");*/ |
| | | String origin = "Company: Fuguang Electronic\n" |
| | | + "Project:BTS monitor platform\n" |
| | | + "Licence duration:"; |
| | | //获取解密后license,附带校验license编码格式 |
| | | String decryptResult = null; |
| | | byte[] bytes = ByteConvertUtil.hexToByteArray(license); |
| | | decryptResult = x.decrypt(bytes, privKey); |
| | | decryptResult = x.decrypt(bytes, privateKey); |
| | | //用户只能往小调时间 |
| | | String[] split1 = decryptResult.split("machineCode:"); |
| | | Long registerCodeTime = Long.valueOf(split1[0]); |