UUID不是128位长的吗,怎么生成的都是36个字符的字符串?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UUID不是128位长的吗,怎么生成的都是36个字符的字符串?相关的知识,希望对你有一定的参考价值。

UUID.fromString("84D1319C-FBAF-644C-901A-8F091F25AF04"));

UUID中有固定的四个 ”-“,所以32位长。
128位是 二进制, 每四个二进制转一个16进制数。 128/4=32
所以,就是32个16进制数的字符了。
参考技术A 128位 = 128/8 = 16字节
每个字节可以用2个可见字符(ASCII)以十六进制表示(base64编码), 所以表示16个字节需要32个字符.
然后4个连字符(-)是UUID的可视化呈现标准要求的.

UUID生成随机数工具类

package com.qiyuan.util;

import java.util.UUID;

public class RanNum {
    
    /** 
     * 生成随机数<br> 
     * GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique 
     * IDentifier) 。 
     *  
     * 所以GUID就是UUID。 
     *  
     * GUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成GUID。 
     *  
     * 从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复。 
     *  
     * @return 
     */  
    public static String randomUUID() {  
        return UUID.randomUUID().toString().replace("-", "");  
    }  
    
    
    public static void main(String[] args) {
        System.out.println(RanNum.randomUUID());
    }

}

 

以上是关于UUID不是128位长的吗,怎么生成的都是36个字符的字符串?的主要内容,如果未能解决你的问题,请参考以下文章

什么是UUID,Java中怎么产生UUID

JAVA工具类 UUID

在java语言中如何随机地生成一个字符串

Java中生成的UUID(全局唯一标识符-----(唯一)-------)

UUID和GUID有啥区别?属于分区还是属于整块硬盘?在GPT模式硬盘上微软用16字128位节表

SSH项目中啥时候用uuid,啥时候用identity?