「java生成唯一编码」java生成唯一编号

博主:adminadmin 2023-03-22 03:35:08 736

今天给各位分享java生成唯一编码的知识,其中也会对java生成唯一编号进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

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

UUID: 通用唯一识别码 (Universally Unique Identifier),是根据时间,机器码,网络地址生成的全球唯一数。

引入 java.util.UUID,直接调用以下即可得到一个32为的随机数,即UUID.

UUID uuid = UUID.randomUUID();

使用java.util.UUID生成唯一标识,为什么生成唯一标识的方法有些还需要参数?

//先看不加参数的源码

public static UUID randomUUID() {

        SecureRandom ng = Holder.numberGenerator;

        byte[] randomBytes = new byte[16];

        ng.nextBytes(randomBytes);

        randomBytes[6]  = 0x0f;  /* clear version        */

        randomBytes[6]  |= 0x40;  /* set to version 4     */

        randomBytes[8]  = 0x3f;  /* clear variant        */

        randomBytes[8]  |= 0x80;  /* set to IETF variant  */

        return new UUID(randomBytes);//看到这里没,其实也是调用的带参数的,只不过

        //所带参数的是给你随机出来的

    }

    

    //再看带参数的

     public static UUID nameUUIDFromBytes(byte[] name) {

        MessageDigest md;

        try {

            md = MessageDigest.getInstance("MD5");

        } catch (NoSuchAlgorithmException nsae) {

            throw new InternalError("MD5 not supported");

        }

        byte[] md5Bytes = md.digest(name);//这里就是对给的byte[]参数进行md5运算之后再进行计算UUID

        md5Bytes[6]  = 0x0f;  /* clear version        */

        md5Bytes[6]  |= 0x30;  /* set to version 3     */

        md5Bytes[8]  = 0x3f;  /* clear variant        */

        md5Bytes[8]  |= 0x80;  /* set to IETF variant  */

        return new UUID(md5Bytes);

    }

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

UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。

生成UUID的方法:

public static String getUUID32(){ String uuid = UUID.randomUUID().toString().replace("-", "").toLowerCase(); return uuid;//  return UUID.randomUUID().toString().replace("-", "").toLowerCase();}

注:因为一般数据库主键为String类型,所以接收类型为String,生成的uuid数据包含-,所以要去掉-,故UUID.randomUUID().toString().replace("-", "").toLowerCase()。

扩展资料:

UUID由以下几部分的组合:

(1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。

(2)时钟序列。

(3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。

UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的GUID(Globals Unique Identifiers)。在ColdFusion中可以用CreateUUID()函数很简单地生成UUID,其格式为:xxxxxxxx-xxxx- xxxx-xxxxxxxxxxxxxxxx(8-4-4-16)。

其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。而标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12),可以从cflib 下载CreateGUID() UDF进行转换。

参考资料:百度百科-UUID

用java获得机器的唯一号

一、上Google搜一下Mac及CPU ID的C代码

二、上java.sun.com找那个JNI的指南

三、你用二的方法把一的代码给包一下。

其实利用在java中的runtime来执行在win里面的ipconfig -all的命令可以实现的!!

java.lang.Process proc = Runtime.getRuntime().exec("ipconfig /all");

InputStream istr = proc.getInputStream();

byte[] data = new byte[1024];

istr.read(data);

netdata = new String(data);

分析其中的netdata就是那!,有关cpu的可以类同实现!

java生成唯一编码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java生成唯一编号、java生成唯一编码的信息别忘了在本站进行查找喔。