java uuid生成算法_Java生成UUID
什么是UUID?
UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生成的标识符。UUID具有以下涵义:
经由一定的算法机器生成
为了保证UUID的唯一性,规范定义了包括网卡MAC地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等元素,以及从这些元素生成UUID的算法。UUID的复杂特性在保证了其唯一性的同时,意味着只能由计算机生成。
非人工指定,非人工识别
UUID是不能人工指定的,除非你冒着UUID重复的风险。UUID的复杂性决定了“一般人“不能直接从一个UUID知道哪个对象和它关联。
在特定的范围内重复的可能性极小
UUID的生成规范定义的算法主要目的就是要保证其唯一性。但这个唯一性是有限的,只在特定的范围内才能得到保证,这和UUID的类型有关(参见UUID的版本)。
UUID是16字节128位长的数字,通常以36字节的字符串表示,示例如下:
3F2504E0-4F89-11D3-9A0C-0305E82C3301
其中的字母是16进制表示,大小写无关。
GUID(Globally Unique Identifier)是UUID的别名;但在实际应用中,GUID通常是指微软实现的UUID。
UUID的版本
UUID具有多个版本,每个版本的算法不同,应用范围也不同。
首先是一个特例--Nil UUID--通常我们不会用到它,它是由全为0的数字组成,如下:
00000000-0000-0000-0000-000000000000
Java源码:
packagetools.uuid;importjava.util.UUID;public classMyUUID {public staticString getUUID() {
UUID uuid=UUID.randomUUID();
String str=uuid.toString();
System.out.println("原始UUID: " +str);//去掉"-"符号
String temp = str.substring(0, 8) + str.substring(9, 13) + str.substring(14, 18) + str.substring(19, 23) + str.substring(24);
System.out.println("去掉\"-\"符号: " +temp);returntemp;
}//获得指定数量的UUID
public static String[] getUUID(intnumber) {if (number < 1) {return null;
}
String[] uuids= newString[number];for (int i = 0; i < number; i++) {
uuids[i]=getUUID();
}returnuuids;
}public static voidmain(String[] args) {
System.out.println("---- 获取单个UUID ----");
String uuid=getUUID();
System.out.println("---- 获取多个UUID ----");
String[] uuids= getUUID(5);for (int i = 0; i < uuids.length; i++) {
System.out.println("uuids[" + i + "]=====" +uuids[i]);
}
}
}
运行结果:
---- 获取单个UUID ----原始UUID: f4958b2a-bdc8-4ea5-bed8-1246381c116a
去掉"-"符号: f4958b2abdc84ea5bed81246381c116a---- 获取多个UUID ----原始UUID: f1791418-6eb5-4538-bd2b-9f6547d8a967
去掉"-"符号: f17914186eb54538bd2b9f6547d8a967
原始UUID: e3b6451e-6073-4c11-9f35-b24b49b8fdab
去掉"-"符号: e3b6451e60734c119f35b24b49b8fdab
原始UUID: 9d53efac-d85e-486c-8bef-3009bb0654b0
去掉"-"符号: 9d53efacd85e486c8bef3009bb0654b0
原始UUID: 3c911454-034e-4b17-8daa-dd616b502744
去掉"-"符号: 3c911454034e4b178daadd616b502744
原始UUID: 9a634db6-b68b-4fa5-8389-b3ee35fc5992
去掉"-"符号: 9a634db6b68b4fa58389b3ee35fc5992
uuids[0]=====f17914186eb54538bd2b9f6547d8a967
uuids[1]=====e3b6451e60734c119f35b24b49b8fdab
uuids[2]=====9d53efacd85e486c8bef3009bb0654b0
uuids[3]=====3c911454034e4b178daadd616b502744
uuids[4]=====9a634db6b68b4fa58389b3ee35fc5992
java uuid生成算法_Java生成UUID相关推荐
- java中的随机生成算法_Java生成随机时间的简单随机算法
根据起始时间生成随机事件,代码如下: public static Date randomDate(Date beginDate,Date endDate ){ if(beginDate.getTime ...
- java uuid去掉横线_java去掉UUID的小横线的算法
几行代码,很简单,直接贴了,处女分享:public static String genUUID(){ UUID uuid = UUID.randomUUID(); String s = uuid.to ...
- java 获得唯一 数字_java生成唯一数字
java生成唯一数字 用UUID类生成唯一标识的时候,会生成一个十六进制的整数,但是不能作为数据库long型字段的唯一标识,用下面的办法可以实现数据库long型标识的生成: public class ...
- java利用TOTP算法动态生成一次性密码
一.HOTP HOTP 算法,全称是"An HMAC-Based One-Time Password Algorithm",是一种基于事件计数的一次性密码生成算法,详细的算法介 ...
- java服务器生成随机数_java生成随机数
java生成随机数 java有三种常用的方式生成随机数: 一.使用Random类 二.使用Math.random方法 三.使用System.currentTimeMillis方法 Random类是最常 ...
- java实现随机数生成算法_Java 语言实现的随机数生成算法
广州疯狂软件学院拥有三大课程体系包括:java课程,android课程,ios课程,疯狂软件年终钜惠,报名java就业班,免费赠送基础班,名额有限,本月火热报名中,欢迎有志之士电话或者QQ咨询. [导 ...
- java 求交集 算法_Java计算交集,差集,并集的方法示例
Java计算交集,差集,并集的方法示例 发布时间:2020-10-07 10:37:46 来源:脚本之家 阅读:106 作者:benbenkui 本文实例讲述了Java计算交集,差集,并集的方法.分享 ...
- java密码学原型算法_java密码学原型算法实现——双线性对.pdf
java密码学原型算法实现--双线性对 Java 密码学原型算法实现--双线性对 1.背景介绍 如何使用jPBC 库进行双线性群初始化,包括: (1)质数阶双线性群(Prime-Order Bilin ...
- java中字典算法_Java字典生成算法讲解
在实际应用中,大家使用的密码可以说多种多样,但是无论有多少,其组成不遑是有可打印字符组成的,我们可以认为 class CreateDic{ private int BitNum; private St ...
- java 微信jssdk签名_JAVA生成微信JSSDK接口签名
签名生成规则如下: 参与签名的字段包括有效的 jsapi_ticket(获取方式详见微信 JSSDK 文档), noncestr (随机字符串,由开发者随机生成),timestamp (由开发者生成的 ...
最新文章
- Ubuntu 64bit 安装 ulipad4.1
- linux主机load average的概念计算过程注意事项
- Caffe编译代码的时候报各种未定义未声明
- linux网络编程之网络应用设计模式、分层模型、通信过程
- eclipse 快捷键及插件
- CentOS6.6上编译安装httpd2.4
- 如何实现公平的效绩考核?
- Scala笔记2——IDE配置、函数式编程核心概念
- LLVM语言参考手册之标识符、类型与常量
- Effective C++ -----条款50:了解new 和delete 的合理替换时机
- linux下包管理器
- Axure RP大数据可视化大屏BI原型模板组件库源文件
- mysql导出单表数据_MySQL之导出整个及单个表数据的操作
- 机器学习基础--各种学习方式(18)--核方法和多核学习
- Team Foundation Server 2013 with Update 3 Install LOG
- 仓库温度湿度控制措施_一般仓库的温湿度控制范围是多少合适?
- elasticsearch 聚合搜索
- html清除iframe的缓存,如何清除iFrame的缓存?
- python计算身份证最后一位数字代表什么_一个计算身份证号码校验位的Python小程序...
- Mikrotik ROS软路由配置PCC负载均衡实现双宽带叠加
热门文章
- c语言实现运输问题表上作业法,运输问题表上作业法
- ssh 方式git clone 代码仓库
- hrbust/哈理工oj 1809 再就业【状压dp】
- 电脑登录斗鱼显示无法连接服务器,斗鱼电脑版登录不了怎么办
- 迅捷pdf虚拟打印机怎么安装使用
- 西门子STEP7用软件来启动PLC的快捷方法
- c语言程序设计职工信息管理系统,C语言程序设计-职工信息管理系统.doc
- 统计通话次数和时间的软件_通话时间统计手机下载-通话时间统计手机版下载v2.3-西西软件下载...
- 终极算法 机器学习和人工智能如何重塑世界
- 直接通过手机抓取GPS的qxdm日志