计算机的 id,计算机唯一ID是什么??
1.关于GUID
下面是一个生成GUID的Java代码:
package com.util;
import java.net.*;
import java.util.*;
import java.security.*;
public class RandomGUID extends Object {
public String valueBeforeMD5 = "";
public String valueAfterMD5 = "";
private static Random myRand;
private static SecureRandom mySecureRand;
private static String s_id;
static {
mySecureRand = new SecureRandom();
long secureInitializer = mySecureRand.nextLong();
myRand = new Random(secureInitializer);
try {
s_id = InetAddress.getLocalHost().toString();
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
public RandomGUID() {
getRandomGUID(false);
}
public RandomGUID(boolean secure) {
getRandomGUID(secure);
}
private void getRandomGUID(boolean secure) {
MessageDigest md5 = null;
StringBuffer sbValueBeforeMD5 = new StringBuffer();
try {
md5 = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
System.out.println("Error: " + e);
}
try {
long time = System.currentTimeMillis();
long rand = 0;
if (secure) {
rand = mySecureRand.nextLong();
} else {
rand = myRand.nextLong();
}
sbValueBeforeMD5.append(s_id);
sbValueBeforeMD5.append(":");
sbValueBeforeMD5.append(Long.toString(time));
sbValueBeforeMD5.append(":");
sbValueBeforeMD5.append(Long.toString(rand));
valueBeforeMD5 = sbValueBeforeMD5.toString();
md5.update(valueBeforeMD5.getBytes());
byte[] array = md5.digest();
StringBuffer sb = new StringBuffer();
for (int j = 0; j < array.length; ++j) {
int b = array[j] & 0xFF;
if (b < 0x10) sb.append('0');
sb.append(Integer.toHexString(b));
}
valueAfterMD5 = sb.toString();
} catch (Exception e) {
System.out.println("Error:" + e);
}
}
public String toString() {
String raw = valueAfterMD5.toUpperCase();
StringBuffer sb = new StringBuffer();
sb.append(raw.substring(0, 8));
sb.append("-");
sb.append(raw.substring(8, 12));
sb.append("-");
sb.append(raw.substring(12, 16));
sb.append("-");
sb.append(raw.substring(16, 20));
sb.append("-");
sb.append(raw.substring(20));
return sb.toString();
}
计算机的 id,计算机唯一ID是什么??相关推荐
- repositoryitemlookupedit根据每行的id绑定数据_一种根据数据库自增ID生成唯一ID的解决方案...
在我们的开发过程中,经常会遇到ID生成的问题,那么这里就介绍一种解决方案,注意这里只适合混淆ID规则,也就是说生成的ID没有任何规则,不适用于订单ID. 一般有序自增主键的ID,极易被爬虫抓取数据,作 ...
- Redis之String应用场景与SpringCache--存储对象信息、分布式唯一ID、文章阅读量、Lua脚本
String应用场景 一.存储对象信息 代码 重写Redis序列 解决方式 剖析SpringCache常用注解 @CacheConfig @Cacheable @CachePut @CacheEvic ...
- 为什么计算机的网络id,网络ID、主机ID和子网掩码
网络ID用来表示计算机属于哪一个网络,网络ID相同的计算机不需要通过路由器连接就能够直接通信,我们把网络ID相同的计算机组成一个网络称之为本地网络(网段):网络ID不相同的计算机之间通信必须通过路由器 ...
- SnowFlake唯一ID生成器
写在前面 架构是权衡的结果,架构也是一层层的组件拼接起来的,如果没有好用的组件,架构势必会做阉割,架构的理想态是建立在一堆友好.易用.标准化的组件之上的.在我过去的经验中,有两类组件经常会出现在我的架 ...
- 分布式系统的唯一ID
2019独角兽企业重金招聘Python工程师标准>>> 需求 为什么需要唯一ID 让分布式系统中的需要辨别的元素,都能有唯一的辨识标志. 几乎所有的业务系统,都有生成一个记录标识的需 ...
- 分布式与微服务——Iaas,Paas和Saas、单体应用和缺点、微服务概念、传统 分布式 SOA 架构与微服务架构的区别、微服务实战、什么是RPC、CAP定理和BASE理论、唯一ID生成、实现分布式
文章目录 1-什么是Iaas,Paas和Saas 一 IaaS基础设施服务 二 paas平台即服务 三saas软件即服务 四 总结 2-单体应用和缺点 一 单体应用 二 单体应用的缺陷 3-微服务概念 ...
- 10.算法进阶之分布式篇——分布式环境下如何生成唯一ID——UUID
UUID--全局唯一ID--universally unique identifie. 一般来说常用的基于时间进行排序,因为时间是自然递增的.但是全局唯一ID的两个核心要求是: 全局唯一 粗略有序 在 ...
- 全局唯一ID发号器的几个思路
标识(ID / Identifier)是无处不在的,生成标识的主体是人,那么它就是一个命名过程,如果是计算机,那么它就是一个生成过程.如何保证分布式系统下,并行生成标识的唯一与标识的命名空间有着密不可 ...
- 【架构】生成全局唯一ID的3个思路,来自一个资深架构师的总结
标识(ID / Identifier)是无处不在的,生成标识的主体是人,那么它就是一个命名过程,如果是计算机,那么它就是一个生成过程.如何保证分布式系统下,并行生成标识的唯一与标识的命名空间有着密不可 ...
- 生成全局唯一ID的3个思路,来自一个资深架构师的总结
标识(ID / Identifier)是无处不在的,生成标识的主体是人,那么它就是一个命名过程,如果是计算机,那么它就是一个生成过程.如何保证分布式系统下,并行生成标识的唯一与标识的命名空间有着密不可 ...
最新文章
- jquery源码分析(七)——事件模块 event(二)
- 自动化测试现状趋势解读,附带近年自动化测试常用工具
- lucene 索引流程整理笔记
- mac 下搭建 php + apache + mysql 服务器(cool)
- 下一个游戏新风口已来?小游戏或成2018年最大游戏黑马
- jquery特效(1)—点击展示与隐藏全文
- tensorflow计算网络占用内存_详细图解神经网络梯度下降法(tensorflow计算梯度)...
- Android ActionBar以及menu的代码设置样式
- STM32F207和DM9161A的以太网实现方案
- Oracle GoldenGate for Oracle 11g(Solaris 10 x86-64) to Oracle 10g(CentOS 4.8) configuration
- 还记得最初的九九乘法表吗?
- div+css入门知识
- i.MX6DL飞思卡尔双核安卓核心板主控
- iOS开发-沙盒(sandbox)机制
- 用微软Custom Version识别水果:三分钟开发人工智能小应用
- Linux就该这么学——Day2
- 找回淘宝的“高级搜索”功能
- 2016年8月15日 星期一 --出埃及记 Exodus 16:16
- 如何成为技术领袖(转载)
- 查询所有上级和所有下级
热门文章
- MATLAB/Simulink电力系统与仿真,第七章变压器空载合闸时励磁涌流的仿真经验
- 使用FFMPEG实现音频播放器
- TAT/CKAAKN/T7/TOC/TRP肽修饰四氧化三铁 TAT/CKAAKN/T7/TOC/TRP-Fe3O4研究
- Berkeley DB 源代码分析 (6) 缓存模块
- 对一个元素 同时添加单击onclick 和 双击ondblclick 触发冲突的解决
- linux 127.0.0.1 不通,linux ping 127.0.0.1不通
- 华为运营商级路由器配置示例 | 合集
- 5G时代下端侧AI势必大火!阿里技术专家在线解读
- OCP最成功的项目是什么?许多数据中心硬件从业者都会和它打交道
- C/C++ const和指针记忆口诀