jsmubanlogo
  • 首页
  • 网页模板
  • 特效代码
  • 博文源码
  • 插件下载
  •    

java获取机器码和注册码

收藏    

作者第十天    2021-11-13

      

package beans;
import java.net.NetworkInterface;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Properties;
import java.util.Set;
import org.hyperic.sigar.NetFlags;
import org.hyperic.sigar.NetInterfaceConfig;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
import org.springframework.security.authentication.encoding.Md5PasswordEncoder;

/**
 * java获取mac和机器码,注册码的实现
 * 
 */
public class AuthorizationUtils {
 private static final int SPLITLENGTH = 4;
 private static final String SALT = "yunshouhu";

 public static void main(String args[]) throws Exception {
  String code = getMachineCode();

 System.out.println("code:" + code);

  String authCode = auth(code);
  System.out.println("机器码:" + code);
  System.out.println("注册码:" + authCode);

  // System.out.println("mac:"+getMac());
  // System.out.println("mac2:"+getMac2());

 }
 

 private static String getMachineCode() {
  Set<String> result = new HashSet<String>();
  //String mac = getMac();
  //System.out.println("mac:" + getMac());
  //result.add(mac);
  Properties props = System.getProperties();
  String javaVersion = props.getProperty("java.version");
  result.add(javaVersion);
  // System.out.println("Java的运行环境版本:  " + javaVersion);
  String javaVMVersion = props.getProperty("java.vm.version");
  result.add(javaVMVersion);
  // System.out.println("Java的虚拟机实现版本:  " +
  // props.getProperty("java.vm.version"));
  String osVersion = props.getProperty("os.version");
  result.add(osVersion);
  // System.out.println("操作系统的版本:  " + props.getProperty("os.version"));

  String code = new Md5PasswordEncoder().encodePassword(
    result.toString(), SALT);
  return getSplitString(code, "-", 4);

 }

 // 使用hyperic-sigar获取mac
 private static String getMac2() throws SigarException {
  Sigar sigar = new Sigar();
  String[] ifaces = sigar.getNetInterfaceList();
  for (String iface : ifaces) {
   NetInterfaceConfig cfg = sigar.getNetInterfaceConfig(iface);
   if (NetFlags.LOOPBACK_ADDRESS.equals(cfg.getAddress())
     || (cfg.getFlags() & NetFlags.IFF_LOOPBACK) != 0
     || NetFlags.NULL_HWADDR.equals(cfg.getHwaddr())) {
    continue;
   }
   String mac = cfg.getHwaddr();
   return mac;
  }
  return null;

 }

 public static String auth(String machineCode) {
  String newCode = "(qinghaijin@qq.com)["
    + machineCode.toUpperCase() + "](府谷县必应信息技术有限公司)";
  String code = new Md5PasswordEncoder().encodePassword(newCode, SALT)
    .toUpperCase() + machineCode.length();
  return getSplitString(code);
 }

 private static String getSplitString(String str) {
  return getSplitString(str, "-", SPLITLENGTH);
 }

 private static String getSplitString(String str, String split, int length) {
  int len = str.length();
  StringBuilder temp = new StringBuilder();
  for (int i = 0; i < len; i++) {
   if (i  length == 0 && i > 0) {
    temp.append(split);
   }
   temp.append(str.charAt(i));
  }
  String[] attrs = temp.toString().split(split);
  StringBuilder finalMachineCode = new StringBuilder();
  for (String attr : attrs) {
   if (attr.length() == length) {
    finalMachineCode.append(attr).append(split);
   }
  }
  String result = finalMachineCode.toString().substring(0,
    finalMachineCode.toString().length() - 1);
  return result;
 }

 public static String bytesToHexString(byte[] src) {
  StringBuilder stringBuilder = new StringBuilder("");
  if (src == null || src.length <= 0) {
   return null;
  }
  for (int i = 0; i < src.length; i++) {
   int v = src[i] & 0xFF;
   String hv = Integer.toHexString(v);
   if (hv.length() < 2) {
    stringBuilder.append(0);
   }
   stringBuilder.append(hv);
  }
  return stringBuilder.toString();
 }
}

需要 org.springframework.security.core-3.0.3.RELEASE.jar
sigar.jar
将一下dll 复制在tomcat bin 目录下


免责声明:
      1、 资源售价只是赞助,不代表代码或者素材本身价格。收取费用仅维持本站的日常运营所需。
      2、 本站资源来自用户上传,仅供用户学习使用,不得用于商业或者非法用途,违反国家法律一切后果用户自负。用于商业用途,请购买正版授权合法使用。
      3、 本站资源不保证其完整性和安全性,下载后自行检测安全,在使用过程中出现的任何问题均与本站无关,本站不承担任何技术及版权问题,不对任何资源负法律责任。
      4、 如有损害你的权益,请联系275551777@qq.com及时删除。

关于我们 | 积分获取 | 联系我们 | 用户协议 | 标签搜索 | 网站地图.html | 网站地图.xml | 网站地图.txt

Copyright © 2021-2023 All Right Reserved
陕公网安备 61082202000148号      陕ICP备2025078528号-1
js模板网 -陕西千手码农科技有限责任公司