123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- package com.fdkankan.reg;
- import com.alibaba.fastjson2.JSON;
- import com.alibaba.fastjson2.JSONObject;
- import com.fdkankan.reg.dto.CamRegDto;
- import com.fdkankan.reg.dto.CamRegSDto;
- import com.fdkankan.reg.dto.MachineRegDto;
- import lombok.extern.slf4j.Slf4j;
- import java.util.ArrayList;
- import java.util.List;
- import cn.hutool.core.util.ObjUtil;
- /**
- * @author Xiewj
- * @date 2023/7/6
- */
- @Slf4j
- public class RegCodeUtil {
- /***
- * @description:生成安装码
- * @author: Xiewj
- * @date: 2023/7/6 15:01
- * @param: machineCode 机器码
- * @return:
- **/
- public static String GenRegeditCode(String machineCode){
- String s = Crypt.encryptAES(machineCode.trim(), true);
- log.info("安装注册码:{}",s);
- return s;
- }
- /***
- * @description:生成相机激活码
- * @author: Xiewj
- * @date: 2023/7/6 15:01
- * @param: plaintext 需要加密的字符串 [{"SN": "SN000001", "TOSN": "", "OPTION": "ADD"}]
- * @return:
- **/
- public static String GenRegeditCamCode(String plaintext){
- String s = Crypt.encryptAES(plaintext.trim(), true);
- log.info("相机注册码:{}",s);
- log.info("相机注册码原始长度:{}",s.length());
- String code = DeflaterUtil.zipString(s);
- log.info("相机注册码压缩:{}",code);
- log.info("相机注册码压缩长度:{}",code.length());
- return code;
- }
- /***
- * @description 获取激活数据
- * @author: Xiewj
- * @date: 2023/7/6 15:01
- * @param: plaintext 需要转换成对象的字符串
- * @return:
- **/
- public static MachineRegDto ParseMachineCode(String plaintext){
- try {
- String source = Crypt.decryptAES(plaintext.trim(), true);
- log.info("相机注册码解密:{}",source);
- MachineRegDto t = JSON.toJavaObject(JSONObject.parseObject(source) , MachineRegDto.class);
- return t;
- }catch (Exception e){
- e.printStackTrace();
- return null;
- }
- }
- // /***
- // * @description 获取激活数据
- // * @author: Xiewj
- // * @date: 2023/7/6 15:01
- // * @param: plaintext 需要转换成对象的字符串
- // * @return:
- // **/
- // public static CamRegDto ParseRegeditCamCode(String machineCode , String plaintext){
- // try {
- // //解压
- // String code = DeflaterUtil.unzipString(plaintext);
- // log.info("相机注册码解压:{}",code);
- // String source = Crypt.decryptAES(code, true);
- // log.info("相机注册码解密:{}",source);
- // CamRegDto t = JSON.toJavaObject(JSONObject.parseObject(source) , CamRegDto.class);
- // if (ObjUtil.isNull(t.getMachineCode()) && !t.getMachineCode().equals(machineCode)){
- // throw new RuntimeException("校验失败");
- // }
- // return t;
- // }catch (Exception e){
- // e.printStackTrace();
- // return null;
- // }
- // }
- /***
- * @description:生成相机激活码多个
- * @author: Xiewj
- * @date: 2023/7/6 15:01
- * @param: plaintext 需要加密的字符串 [{"SN": "SN000001", "TOSN": ""},{"SN": "SN000001", "TOSN": ""}]
- * @return:
- **/
- public static String batchGenRegeditCamCode( CamRegSDto dtos){
- String camCode = GenRegeditCamCode(JSONObject.toJSONString(dtos).toString());
- return camCode;
- }
- /***
- * @description 获取激活数据
- * @author: Xiewj
- * @date: 2023/7/6 15:01
- * @param: plaintext 需要转换成对象的字符串
- * @return:
- **/
- public static CamRegSDto BatchParseRegeditCamCode(String machineCode,String plaintext){
- try {
- //解压
- String code = DeflaterUtil.unzipString(plaintext.trim());
- log.info("批量生成相机码解压:{}",code);
- String source = Crypt.decryptAES(code, true);
- CamRegSDto t = JSON.toJavaObject(JSONObject.parseObject(source) , CamRegSDto.class);
- if (ObjUtil.isNull(t.getMachineCode()) && !t.getMachineCode().equals(machineCode.trim())){
- throw new RuntimeException("校验失败");
- }
- return t;
- }catch (Exception e){
- e.printStackTrace();
- return null;
- }
- }
- public static void main(String[] args) {
- //读取机器码
- MachineRegDto machineRegDto = ParseMachineCode("E4E73A8EB46B8EA252B9C1B34048F60679FB345BC6F233A8369E355828B68F69FDAB2150B286C0E0A397D960183716F8BF4C8B086D4C5BB5D1243CB9AA924B6B8A0ED22ED413BD27681CE5C36198EBF7FE06E75CD444B46A7721E2462DD234EB6B5B780F1FB9CF3C26C3ED4DB7B08B20");
- System.out.println(machineRegDto);
- String machineCode="E4E73A8EB46B8EA252B9C1B34048F60679FB345BC6F233A8369E355828B68F69FDAB2150B286C0E0A397D960183716F8BF4C8B086D4C5BB5D1243CB9AA924B6B8A0ED22ED413BD27681CE5C36198EBF7FE06E75CD444B46A7721E2462DD234EB6B5B780F1FB9CF3C26C3ED4DB7B08B20";
- //生成安装注册码
- String s = GenRegeditCode(machineCode);
- // CamRegDto camRegDto1=new CamRegDto();
- // camRegDto1.setSn("00000001");
- // camRegDto1.setMachineCode(machineCode);
- // //生成相机注册码
- // String camCode = GenRegeditCamCode( JSON.toJSONString(camRegDto1));
- // //校验相机注册码
- // CamRegDto camRegDto3 = ParseRegeditCamCode(machineCode,camCode);
- List<CamRegDto> list=new ArrayList<>();
- CamRegDto camRegDto=new CamRegDto();
- camRegDto.setSn("00000001");
- list.add(camRegDto);
- CamRegDto camRegDto2=new CamRegDto();
- camRegDto2.setSn("00000001");
- list.add(camRegDto2);
- CamRegSDto CamReg=new CamRegSDto();
- CamReg.setMachineCode(machineCode);
- CamReg.setCamRegs(list);
- String camCode1 = batchGenRegeditCamCode( CamReg);
- // List<CamRegDto> list1 = BatchParseRegeditCamCode(machineCode+"a",camCode1);
- CamRegSDto list1 = BatchParseRegeditCamCode(machineCode,camCode1);
- log.info("结束");
- }
- }
|