精华内容
下载资源
问答
  • 我用QQ浏览器的谷歌内核和谷歌浏览器打开的是相同的,用搜狗浏览器的急速内核和谷歌浏览器的是不同的 同个浏览器的ie内核和急速内核的是不同的 function cans() { var canvas = document.createElement('...

    我用QQ浏览器的谷歌内核和谷歌浏览器打开的值是相同的,用搜狗浏览器的急速内核和谷歌浏览器的值是不同的
    同个浏览器的ie内核和急速内核的值是不同的

    
    	function cans() {
    		var canvas = document.createElement('canvas');
    		var ctx = canvas.getContext('2d');
    		var txt = 'http://security.tencent.com/';
    		ctx.textBaseline = "top";
    		ctx.font = "14px 'Arial'";
    		ctx.textBaseline = "tencent";
    		ctx.fillStyle = "#f60";
    		ctx.fillRect(125, 1, 62, 20);
    		ctx.fillStyle = "#069";
    		ctx.fillText(txt, 2, 15);
    		ctx.fillStyle = "rgba(102, 204, 0, 0.7)";
    		ctx.fillText(txt, 4, 17);
    
    		var b64 = canvas.toDataURL().replace("data:image/png;base64,", "");
    		var bin = atob(b64);
    		var crc = bin2hex(bin.slice(-16, -12));
    		//var crc = bin.slice(-16,-12);
    		alert(crc);
    	}
    
    function bin2hex(str) {
    		var result = "";
    		for (i = 0; i < str.length; i++) {
    			result += int16_to_hex(str.charCodeAt(i));
    		}
    		return result;
    	}
    
    	function int16_to_hex(i) {
    		var result = i.toString(16);
    		var j = 0;
    		while (j + result.length < 4) {
    			result = "0" + result;
    			j++;
    		}
    		return result;
    	}
    	

    原文地址:https://blog.csdn.net/javakeffer/article/details/48803165

     

    展开全文
  • 获取机器唯一码,开发平台 delphi 10.3 操作系统 win 10 ,在2003系统上测试通过。里面含有源代码和可执行程序。代码兼容 delphi 7到delphi10.3
  • 帆布就是一台电脑唯一标识,可以根据这个来统计网站的pv和uv
  • 但是添加的时候要有个电脑的ip(或者其他字段也可以),就是当前电脑唯一标识,服务器地址肯定不行,wifi每次ip都不一样,也不可以,所有这个地方我该用什么呢? ![图片说明]...
  • 根据电脑硬件信息生成唯一的序列号,不依赖于任何第三方组件,包括:硬盘的卷标号、硬盘ID、CPU的序列号、网卡硬件地址、IP地址、登录用户名、计算机名、PC类型、物理内存。
  • 就是获取电脑唯一标识后将该存入授权数据库,默认给当前电脑的使用时期为当前时间后一年,一年后登陆时不能正常登陆(记录第一次使用这种场景) java代码 package org.wj.common.tool; import java.io.*; import ...

    在生产环境中,有时候会需要获取电脑唯一标识进行程序管理验证,比如一个程序,在A电脑上面只能允许正常登陆一年,到期后提示联系管理员等情况。就是获取电脑唯一标识后将该值存入授权数据库,默认给当前电脑的使用时期为当前时间后一年,一年后登陆时不能正常登陆(记录第一次使用这种场景)
    java代码

    package org.wj.common.tool;
    import java.io.*;
    import java.net.*;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.*;
    
    
    public class SerialNumberUtil {
    
    	/**
    	 * 获取主板序列号
    	 * @return
    	 */
    	public static String getMotherboardSN() {
    		String result = "";
    		try {
    			File file = File.createTempFile("realhowto", ".vbs");
    			file.deleteOnExit();
    			FileWriter fw = new FileWriter(file);
    
    			String vbs = "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
    				+ "Set colItems = objWMIService.ExecQuery _ \n"
    				+ "   (\"Select * from Win32_BaseBoard\") \n"
    				+ "For Each objItem in colItems \n"
    				+ "    Wscript.Echo objItem.SerialNumber \n"
    				+ "    exit for  ' do the first cpu only! \n" + "Next \n";
    
    			fw.write(vbs);
    			fw.close();
    			String path = file.getPath().replace("%20", " ");
    			Process p = Runtime.getRuntime().exec(
    				"cscript //NoLogo " + path);
    			BufferedReader input = new BufferedReader(new InputStreamReader(
    				p.getInputStream()));
    			String line;
    			while ((line = input.readLine()) != null) {
    				result += line;
    			}
    			input.close();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return result.trim();
    	}
    
    	/**
    	 * 获取硬盘序列号(该方法获取的是 盘符的逻辑序列号,并不是硬盘本身的序列号)
    	 * 硬盘序列号还在研究中
    	 * @param drive 盘符
    	 * @return
    	 */
    	public static String getHardDiskSN(String drive) {
    		String result = "";
    		try {
    			File file = File.createTempFile("realhowto", ".vbs");
    			file.deleteOnExit();
    			FileWriter fw = new FileWriter(file);
    
    			String vbs = "Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n"
    				+ "Set colDrives = objFSO.Drives\n"
    				+ "Set objDrive = colDrives.item(\""
    				+ drive
    				+ "\")\n"
    				+ "Wscript.Echo objDrive.SerialNumber"; // see note
    			fw.write(vbs);
    			fw.close();
    			String path = file.getPath().replace("%20", " ");
    			Process p = Runtime.getRuntime().exec(
    				"cscript //NoLogo " + path);
    			BufferedReader input = new BufferedReader(new InputStreamReader(
    				p.getInputStream()));
    			String line;
    			while ((line = input.readLine()) != null) {
    				result += line;
    			}
    			input.close();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return result.trim();
    	}
    
    	/**
    	 * 获取CPU序列号
    	 * @return
    	 */
    	public static String getCPUSerial() {
    		String result = "";
    		try {
    			File file = File.createTempFile("tmp", ".vbs");
    			file.deleteOnExit();
    			FileWriter fw = new FileWriter(file);
    			String vbs = "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
    				+ "Set colItems = objWMIService.ExecQuery _ \n"
    				+ "   (\"Select * from Win32_Processor\") \n"
    				+ "For Each objItem in colItems \n"
    				+ "    Wscript.Echo objItem.ProcessorId \n"
    				+ "    exit for  ' do the first cpu only! \n" + "Next \n";
    
    			// + "    exit for  \r\n" + "Next";
    			fw.write(vbs);
    			fw.close();
    			String path = file.getPath().replace("%20", " ");
    			Process p = Runtime.getRuntime().exec(
    				"cscript //NoLogo " + path);
    			BufferedReader input = new BufferedReader(new InputStreamReader(
    				p.getInputStream()));
    			String line;
    			while ((line = input.readLine()) != null) {
    				result += line;
    			}
    			input.close();
    			file.delete();
    		} catch (Exception e) {
    			e.fillInStackTrace();
    		}
    		if (result.trim().length() < 1 || result == null) {
    			result = "无CPU_ID被读取";
    		}
    		return result.trim();
    	}
    
    	private static List<String> getLocalHostLANAddress()	throws UnknownHostException, SocketException {
    		List<String> ips = new ArrayList<String>();
    		Enumeration<NetworkInterface> interfs = NetworkInterface.getNetworkInterfaces();
    		while (interfs.hasMoreElements()) {
    			NetworkInterface interf = interfs.nextElement();
    			Enumeration<InetAddress> addres = interf.getInetAddresses();
    			while (addres.hasMoreElements()) {
    				InetAddress in = addres.nextElement();
    				if (in instanceof Inet4Address) {
    //					System.out.println("v4:" + in.getHostAddress());
    					if(!"127.0.0.1".equals(in.getHostAddress())){
    						ips.add(in.getHostAddress());
    					}
    				}
    			}
    		}
    		return ips;
    	}
    
    	/**
    	 * MAC
    	 * 通过jdk自带的方法,先获取本机所有的ip,然后通过NetworkInterface获取mac地址
    	 * @return
    	 */
    	public static String getMac() {
    		try {
    			String resultStr = "";
    			List<String> ls = getLocalHostLANAddress();
    			for(String str : ls){
    				InetAddress ia = InetAddress.getByName(str);// 获取本地IP对象
    				// 获得网络接口对象(即网卡),并得到mac地址,mac地址存在于一个byte数组中。
    				byte[] mac = NetworkInterface.getByInetAddress(ia)
    					.getHardwareAddress();
    				// 下面代码是把mac地址拼装成String
    				StringBuilder sb = new StringBuilder();
    				for (int i = 0; i < mac.length; i++) {
    					if (i != 0) {
    						sb.append("-");
    					}
    					// mac[i] & 0xFF 是为了把byte转化为正整数
    					String s = Integer.toHexString(mac[i] & 0xFF);
    					sb.append(s.length() == 1 ? 0 + s : s);
    				}
    				// 把字符串所有小写字母改为大写成为正规的mac地址并返回
    				resultStr += sb.toString().toUpperCase()+",";
    			}
    			return resultStr;
    		} catch (Exception ex) {
    			ex.printStackTrace();
    		}
    		return null;
    	}
    
    	/***************************linux*********************************/
    
    	public static String executeLinuxCmd(String cmd)  {
    		try {
    //			System.out.println("got cmd job : " + cmd);
    			Runtime run = Runtime.getRuntime();
    			Process process;
    			process = run.exec(cmd);
    			InputStream in = process.getInputStream();
    			BufferedReader bs = new BufferedReader(new InputStreamReader(in));
    			StringBuffer out = new StringBuffer();
    			byte[] b = new byte[8192];
    			for (int n; (n = in.read(b)) != -1;) {
    				out.append(new String(b, 0, n));
    			}
    
    			in.close();
    			process.destroy();
    			return out.toString();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return null;
    	}
    
    	/**
    	 *
    	 * @param cmd 命令语句
    	 * @param record 要查看的字段
    	 * @param symbol 分隔符
    	 * @return
    	 */
    	public static String getSerialNumber(String cmd ,String record,String symbol) {
    		String execResult = executeLinuxCmd(cmd);
    		String[] infos = execResult.split("\n");
    
    		for(String info : infos) {
    			info = info.trim();
    			if(info.indexOf(record) != -1) {
    				info.replace(" ", "");
    				String[] sn = info.split(symbol);
    				return sn[1];
    			}
    		}
    
    		return null;
    	}
    
    	/**
    	 * 获取CPUID、硬盘序列号、MAC地址、主板序列号
    	 * @return
    	 */
    	public static Map<String, String> getAllSn(){
    		String os = System.getProperty("os.name");
    		os = os.toUpperCase();
    //		System.out.println(os);
    
    		Map<String, String> snVo = new HashMap<String, String>();
    
    		if("LINUX".equals(os)) {
    			System.out.println("=============>for linux");
    			String cpuid = 				getSerialNumber("dmidecode -t processor | grep 'ID'", "ID",":");
    			System.out.println("cpuid : "+ cpuid);
    			String mainboardNumber = 	getSerialNumber("dmidecode |grep 'Serial Number'", "Serial Number",":");
    			System.out.println("mainboardNumber : "+ mainboardNumber);
    			String diskNumber = 		getSerialNumber("fdisk -l", "Disk identifier",":");
    			System.out.println("diskNumber : "+ diskNumber);
    			String mac = 				getSerialNumber("ifconfig -a", "ether"," ");
    
    			snVo.put("cpuid",cpuid.toUpperCase().replace(" ", ""));
    			snVo.put("diskid",diskNumber.toUpperCase().replace(" ", ""));
    			snVo.put("mac",mac.toUpperCase().replace(" ", ""));
    			snVo.put("mainboard",mainboardNumber.toUpperCase().replace(" ", ""));
    		}else {
    			System.out.println("=============>for windows");
    			String cpuid = SerialNumberUtil.getCPUSerial();
    			String mainboard = SerialNumberUtil.getMotherboardSN();
    			String disk = SerialNumberUtil.getHardDiskSN("c");
    			String mac = SerialNumberUtil.getMac();
    
    //			System.out.println("CPU  SN:" + cpuid);
    //			System.out.println("主板  SN:" + mainboard);
    //			System.out.println("C盘   SN:" + disk);
    //			System.out.println("MAC  SN:" + mac);
    
    			snVo.put("cpuid",cpuid.toUpperCase().replace(" ", ""));
    			snVo.put("diskid",disk.toUpperCase().replace(" ", ""));
    			snVo.put("mac",mac.toUpperCase().replace(" ", ""));
    			snVo.put("mainboard",mainboard.toUpperCase().replace(" ", ""));
    		}
    
    		return snVo;
    	}
    	/**
    	 * linux
    	 * cpuid : dmidecode -t processor | grep 'ID'
    	 * mainboard : dmidecode |grep 'Serial Number'
    	 * disk : fdisk -l
    	 * mac : ifconfig -a
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		getAllSn();
    	}
    	/**
    	* @Description:获取唯一标识
    	* @Param: []
    	* @return: java.lang.String
    	* @Author: wj
    	* @Date: 2019-09-04
    	*/
    	public static String  getmainboard() {
    		//主板id
    		String mainboard=null;
    		//C盘id
    		String disk=null;
    		//macid
    		String mac=null;
    		Map<String, String>  sno=SerialNumberUtil.getAllSn();
    		for(String key : sno.keySet()){
    			String value = sno.get(key);
    			if(("mainboard").equals(key)){
    				mainboard=value;
    			}else if(("diskid").equals(key)){
    				disk=value;
    			}
    		}
    		return mainboard+disk;
    
    	}
    
    	public  static  String nextYear(){
    		Date date = new Date();
    		Calendar cal = Calendar.getInstance();
    		cal.setTime(date);
    		cal.add(Calendar.YEAR, 1);//增加一年
    		SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
    		//java.util.Date对象
    		Date date1=new Date();
    		try {
    			date1 = (Date) sdf.parse(cal.getTime().toString());
    		} catch (ParseException e) {
    			e.printStackTrace();
    		}
    		String formatStr2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date1);
    		return formatStr2;
    	}
    ``代码链接:
    https://download.csdn.net/download/weixin_44244991/12477368
    
    
    
    展开全文
  • 下载并运行“获取电脑序列号.bat”文件,会自动在当前文件夹生成“computerinfo.txt”文件,在该文件中可以找到相关信息。 获取设备唯一标识方法 CPU ID 在Windows系统中通过命令行运行“wmic cpu get processorid”...

    方法1

    下载并运行“获取电脑序列号.bat”文件,会自动在当前文件夹生成“computerinfo.txt”文件,在该文件中可以找到相关信息。(提取码:biv3)

    获取设备唯一标识方法

    CPU ID

    在Windows系统中通过命令行运行“wmic cpu get processorid”就可以查看CPU ID。
    目前CPU ID也无法唯一标识设备,Intel现在可能同一批次的CPU ID都一样,不再提供唯一的ID。而且经过实际测试,新购买的同一批次PC的CPU ID很可能一样。这样作为设备的唯一标识就会存在问题。

    硬盘序列号

    在Windows系统中通过命令行运行“wmic diskdrive get serialnumber”可以查看。
    硬盘序列号作为设备唯一ID存在的问题是,很多机器可能存在多块硬盘,特别是服务器,而且机器更换硬盘是很可能发生的事情,更换硬盘后设备ID也必须随之改变,不然也会影响授权等应用。因此,很多授权软件没有考虑使用硬盘序列号。而且,不一定所有的电脑都能获取到硬盘序列号。

    自定义算法生成唯一ID

    可以使用自制的一个特定算法(如GUID、或者一定位数的随机数)生成唯一的ID,然后写入到注册表或者设备上,作为其唯一ID。
    这种方法不依赖任何硬件特征,唯一性也可以自己完全控制,不过纯软件的实现缺点是这个ID很容易伪造,也很容易擦除;而且很可能还需要在线验证,后台存储所有ID的服务器必须保持在线。

    Windows的产品ID(ProductId)

    在“控制面板\系统和安全\系统”的最下面就可以看到激活的Windows产品ID信息,另外通过注册表“HKEY_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion”也可以看到看到“ProductId”字段。
    不过这个产品ID并不唯一,不同系统或者机器重复的概率也比较大。虚拟机中克隆的系统,使用同一个镜像安装激活的系统,其产品ID就可能一模一样。经过实测,笔者在两台Thinkpad笔记本上发现其ProductId完全一样。

    MachineGUID

    Windows安装时会唯一生成一个GUID,可以在注册表中搜索“MachineGuid”字段获取其值。
    这个ID作为Windows系统设备的唯一标识不错,不过值得注意的一点是,与硬件ID不一样,这个ID在重装Windows系统后应该不一样了。这样授权软件在重装系统后,可能就需要用户重新购买授权。

    主板smBIOS UUID

    在Windows系统中通过命令行运行“wmic csproduct get UUID”可以查看。
    主板UUID是很多授权方法和微软官方都比较推崇的方法,即便重装系统UUID应该也不会变(笔者没有实测重装,不过在一台机器上安装双系统,获取的主板UUID是一样的,双系统一个windows一个Linux,Linux下用“dmidecode -s system-uuid”命令可以获取UUID)。
    但是这个方法也有缺陷,因为不是所有的厂商都提供一个UUID,当这种情况发生时,wmic会返回“FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF”,即一个无效的UUID。

    ‘wmic’ 不是内部或外部命令,也不是可运行的程序 解决方法

    在环境变量中查看变量名Path下的变量值是否有以下信息:

    %SystemRoot%;%SystemRoot%\system32;%SystemRoot%\System32\Wbem
    

    如没有复制(Ctrl+C)、粘贴(Ctrl+V)→确定,再重新打开cmd即可。

    展开全文
  • 如何获取电脑bios唯一的序列号

    万次阅读 2018-05-14 11:19:28
    打开cmd,输入: wmic bios get serialnumber 
    打开cmd,输入:
    
     wmic bios get serialnumber 
    展开全文
  • 最近做的几个项目都用到了软件加密问题,使用加密狗控制软件使用和安装就会碰到一个问题:就是如何识别客户端电脑唯一性?  网上查了一下,有这么几种解决方案:  1、通过硬盘出厂编号;  (缺点是:有...
  • 一行或多行中包含违反非空、唯一或外键约束的”。在网上查了很多资料都不符合自身的情况,遂逐一排查,把每个字段都一个个试了,最终发现了问题。有一个列名叫摘要,数据库中设置的类型为text,长度为16,但是其...
  • 有很多场景和需求你需要用到手机设备的唯一标识符。 在Android中,有以下几种方法获取这样的ID。 1. The IMEI: 仅仅只对Android手机有效: 1 2 TelephonyManager TelephonyMgr = (TelephonyManager)...
  • 1.uid是唯一标识别,它是唯一硬件标示,全球不会重复; 2.你的app若开启了广告标示符选项也可以使用广告标示符号。从idfa = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];来看它好像...
  • 谈谈唯一约束和唯一索引

    万次阅读 多人点赞 2018-03-27 21:20:00
    最近在看数据库相关知识,感觉唯一约束和唯一索引好像有点类似,于是研究了一番,于是就有了这篇文章。 概念 开始之前,先解释一下约束和索引。 约束 全称完整性约束,它是关系数据库中的对象,用来存放插入到...
  • Android唯一识别号

    千次阅读 2016-03-11 10:05:33
    有很多场景和需求你需要用到手机设备的唯一标识符。如果你使用了友盟的统计,可以直接使用友盟的device_token,省时,省力,你自己将它记录下来即可。如果你自己要管理唯一标识,那看下面的内容:在Android中,有...
  • Android设备唯一码的获取

    万次阅读 2016-10-14 17:53:20
    UTDID的生成中包含时间戳和随机数等,因此重新生成的UTDID一定是会改变的,UTDID的稳定性强依赖于手机存储,UTDID方案是一个重在持久化存储的方案。 1.老UTDID方案面临的问题 1.1 权限问题
  • [Java算法]--生成全局唯一的Id(IdGen)

    万次阅读 2018-01-29 11:00:04
    全局唯一ID生成器浅析 我们在开发中,有时非常需要一个全局唯一的ID值,不管是业务需求,还是为了以后可能的分表需求,全局唯一值都非常有用,本篇大象就来讲讲这个实现并对ID生成器性能进行一下测试。 大象所讲的...
  • PV、UV和IP

    万次阅读 2018-01-18 14:40:25
    1、PV  PV(page view) 即页面浏览量或点击量,是用来衡量一个网站或页面用户访问量。具体来说,PV就是所有访问者在24小时(0点到24点)内看了某个网站多少个页面或着某个网页多少次。拿一个网页来说,PV是指这...
  • Android 获取唯一标识符

    千次阅读 2019-03-29 14:41:42
    在设备首次启动时,系统会随机生成一个64位的数字,并把这个数字以16进制字符串的形式保存下来,这个16进制的字符串就是,但是当设备被wipe,ROOT,恢复出厂设置,后该会被重置, 厂商定制系统的Bug:不同的设备...
  • 本文实例讲述了PHP实现会员账号...A账号在A电脑上登录后,把SESSION ID写入TXT文件,每次访问页面时,都做一次校验(比较txt文件的是否和当前登录的session_id的相同) 实例 1、入口与校验(index.php) <?php sess
  • 有很多场景和需求你需要用到手机设备的唯一标识符。在Android中,有以下几种方法获取这样的ID。1. The IMEI: 仅仅只对Android手机有效:1 2TelephonyManager TelephonyMgr = (TelephonyManager)getSystemService...
  • 在64位windows下获取计算机唯一标识符,主要是在64位下不能使用汇编指令
  • 唯一的标识一个设备是一个基本功能,可以拥有很多应用场景,比如软件授权(如何保证你的软件在授权后才能在特定机器上使用)、软件License,设备标识,设备身份识别等。下面列举一下各种方法的优劣: (1)网卡MAC...
  • 获取Android设备唯一标识码

    千次阅读 2017-03-20 11:36:58
    虽然Android系统中提供了这样设备识别码,但是由于Android系统版本、厂商定制系统中的Bug等限制,稳定性和唯一性并不理想。而通过其他硬件信息标识也因为系统版本、手机硬件等限制存在不同程度的问题。 下面收集了...
  • 环境:只适用于PC一:遇到的坑 Unity 提供了给我一套获取硬件信息的API 链接 蛮牛上的一篇帖子:链接 文中都提到了一个获取设备的唯一标识符 但是我可以明确告诉你 这个会改变(过一段时间就会变 就是被他坑了...
  • 获取Android唯一标识(唯一序列号)

    千次阅读 2017-03-10 11:15:28
    有一些特殊的情况,如平板电脑的设置没有通话功能,或者不愿加入READ_PHONE_STATE许可。而仍然想获得唯一序列号之类的东西。这时可以通过取出ROM版本、制造商、CPU型号、以及其他硬件信息来实现这一点。这样计算出来...
  • Qt生成唯一标识

    千次阅读 2018-11-29 20:32:49
    利用随机数生成唯一标识 qsrand(QTime(0,0,0).secsTo(QTime::currentTime())); //初始化 int id = qrand(); //生成随机数,即唯一标识 qsrand(QTime(0,0,0).msecsTo(QTime::currentTime())); int id = ...
  • 获取设备唯一标识(Unique Identifier):Windows系统

    万次阅读 热门讨论 2018-08-08 11:48:13
    之前有做过防止用户非法使用公司软件的组件(软件授权),其中基于windows系统获取设备唯一标志,上任开发者获取的唯一标识之一CPU ID已经不再唯一产生的Bug,便是参考此文修复。现记录之。     原文地址:...
  • UUID全局唯一标识符

    千次阅读 2017-11-14 22:45:58
    UUID 是通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。 UUID 的目的是让分布式系统中的所有元素,都能有唯一的辨识资讯,...
  • C++代码,VS工程,在windows x86上运行。通过获取PC的CPU id字符串,以这个字符串作为种子,生成唯一性的UUID。这个UUID可以用作PC的唯一性标识,或者身份认证...UUID不同CPU不会重复,但相同CPU下每次的UUID都一样。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 90,833
精华内容 36,333
关键字:

唯一值电脑