• caromai
    了解作者
  • Java
    开发工具
  • 1KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 0
    下载次数
  • 2020-11-14 09:54
    上传日期
利用RSA加密MAC地址,实现基于公钥启动程序,适合linux和windows环境
MacBindingTool.rar
  • MacTools.java
    1.6KB
  • MakeSure.java
    2.7KB
内容介绍
import io.jsonwebtoken.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import java.io.*; import java.security.PublicKey; import java.util.List; @Slf4j public class MakeSure { static final String tokenPath = "/usr/data/token.db"; static final String pubKeyPath = "/usr/data/rsa.pub"; private static PublicKey publicKey; public static boolean init() { log.info("pubKeyPath->{}", pubKeyPath); try { //首先判断公钥是否存在,不存在则先生成公钥私钥 File pubKey = new File(pubKeyPath); if (!pubKey.exists()) { return false; } //公钥私钥都存在 publicKey = RsaUtils.getPublicKey(pubKeyPath); List<String> macs = MacTools.getMacList(); String macAddress = getMacAddress(publicKey, getTokenString()); log.info("macAddress->{}", macAddress); log.info("本机的mac网卡的地址有:"+macs); if (StringUtils.isBlank(macAddress)) { return false; } for (String mac : macs) { if (mac.equals(macAddress)) { return true; } } return false; } catch (Exception e) { log.error("初始化公钥失败",e); throw new RuntimeException(); } } public static String getTokenString() { String tokenString; byte[] strBuffer = null; int flen = 0; File xmlfile = new File(tokenPath); try { InputStream in = new FileInputStream(xmlfile); flen = (int)xmlfile.length(); strBuffer = new byte[flen]; in.read(strBuffer, 0, flen); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } tokenString = new String(strBuffer); return tokenString; } public static String getMacAddress(PublicKey publicKey, String token) { try{ Jws<Claims> claimsJws = parseJwt(publicKey, token); Claims body = claimsJws.getBody(); return body.get("macAddress", String.class); } catch(Exception e){ log.error(TraceUtil.getTrace(e)); throw new RuntimeException(); } } public static Jws<Claims> parseJwt(PublicKey publicKey, String token) { return Jwts.parser().setSigningKey(publicKey).parseClaimsJws(token); } public static void main(String[] args) { init(); } }
评论
    相关推荐
    • 书 名:程序开发范例宝典>>
       实例099 使用EventLog组件向本机现有日志中添加条目 138  3.4 FileSystemWatcher组件 140  实例100 使用FileSystemWatcher组件监视系统日志文件是否被更改 140  3.5 HelpProvider组件 142  实例101 ...
    • DHCP获取软件
      1、启动程序,如果机器安装了DR.COM客户端,请选中“使用WinPacp驱动”,如果不选中,只能抓取本机获取地址过程中的dhcp包文,如果选中的,网络中如果存在dhcp报文,也会抓取到。 2、将该网络所在的网关地址填入...
    • linux下多网卡绑定相同IP
      linux下多网卡绑定相同IP攻略,加强性能体验
    • 雨林木风工具箱终结版
      MAC地址修改器.exe——可修改本机网卡MAC地址 TCPIP_Crack.exe(TCPIP连接数破解)——支持SP3,脱兔出品 Tcpview.exe(查看网络连接)——可查看本机的TCP和UDP连接 WinsockxpFix.exe(修复Winsock)——可...
    • 路由跟踪命令.查看DNS、IP、Mac
      2.查看DNS、IP、Mac等 A.Win98:winipcfg B.Win2000以上:Ipconfig/all C.NSLOOKUP:如查看河北的DNS C:\>nslookup Default Server: ns.hesjptt.net.cn Address: 202.99.160.68 >server 202.99.41.2 则将DNS...
    • C#程序开发范例宝典(第2版).part09
      实例107 使用EventLog组件向本机现有日志中添加条目 155 3.4 FileSystemWatcher组件 156 实例108 使用FileSystemWatcher组件监视系统日志文件是否被更改 157 3.5 HelpProvider组件 158 实例109 使用HelpProvider...
    • C#程序开发范例宝典(第2版).part12
      实例107 使用EventLog组件向本机现有日志中添加条目 155 3.4 FileSystemWatcher组件 156 实例108 使用FileSystemWatcher组件监视系统日志文件是否被更改 157 3.5 HelpProvider组件 158 实例109 使用HelpProvider...
    • C#程序开发范例宝典(第2版).part06
      实例107 使用EventLog组件向本机现有日志中添加条目 155 3.4 FileSystemWatcher组件 156 实例108 使用FileSystemWatcher组件监视系统日志文件是否被更改 157 3.5 HelpProvider组件 158 实例109 使用HelpProvider...
    • C#程序开发范例宝典电子书从1-471例后面的暂时没有
      实例099 使用EventLog组件向本机现有日志中添加条目 138 3.4 FileSystemWatcher组件 140 实例100 使用FileSystemWatcher组件监视系统日志文件是否被更改 140 3.5 HelpProvider组件 142 实例101 使用...
    • Keil.STM32F1xx_DFP.2.3.0.zip
      Keil.STM32F1xx_DFP.2.3.0