• UUID生成方法总结

    2013-07-11 09:59:31
    转自:http://puxx.blog.ustc.edu.cn/index.php/2013/06/28/uuid%E7%94%9F%E6%88%90%E6%96%B9%E6%B3%95%E6%80%BB%E7%BB%93/...通用唯一识别码(英语:Universally Unique Identifier,简称UUID)是一种软件建构的标准,

    转自:http://puxx.blog.ustc.edu.cn/index.php/2013/06/28/uuid%E7%94%9F%E6%88%90%E6%96%B9%E6%B3%95%E6%80%BB%E7%BB%93/


    UID简介

    摘自维基百科

    通用唯一识别码(英语:Universally Unique Identifier,简称UUID)是一种软件建构的标准,亦为自由软件基金会组织在分散式计算环境领域的一部份。

    UUID的目的,是让分散式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名称重复问题。目前最广泛应用的UUID,是微软公司的全局唯一标识符(GUID),而其他重要的应用,则有Linux ext2/ext3文件系统、LUKS加密分区、GNOME、KDE、Mac OS X等等。另外我们也可以在e2fsprogs包中的UUID库找到实现。


    生成方法

    搜集了一些UUID的生成方法,整理如下

    Shell

    • Unix/Linux环境中大都有一个名为uuidgen的小工具,运行即可生成一个UUID到标准输出
    • 读取文件/proc/sys/kernel/random/uuid即得UUID,例如:

      cat /proc/sys/kernel/random/uuid
      

    libuuid

    libuuid是一个用于生成UUID的C库,具体用法参考http://linux.die.net/man/3/libuuid,示例如下:

    #include <stdio.h>
    #include <uuid/uuid.h>
    
    int main(int argc, char **argv)
    {
        uuid_t uuid;
        char str[36];
    
        uuid_generate(uuid);
        uuid_unparse(uuid, str);
    
        printf("%s\n", str);
    
        return 0;
    }
    

    在Linux下编译时需要链接uuid库

    gcc -o uuid uuid.c -luuid
    

    在Ubuntu中,可以用下面的命令安装libuuid:

    sudo apt-get install uuid-dev
    

    boost uuid

    Boost库是一个可移植的开源C++库,它提供了UUID的实现。

    下面的代码可以生成一个UUID

    #include <boost/uuid/uuid.hpp>
    #include <boost/uuid/uuid_generators.hpp>
    
    boost::uuids::uuid a_uuid = boost::uuids::random_generator();
    

    Qt QUuid

    Qt是一个跨平台的C++编程框架,QUuid类实现了UUID的生成、比较、转换等功能。

    函数QUuid createUuid();可用于生成一个随即UUID。示例如下:

    #include <iostream>
    #include <QUuid>
    #include <QString>
    
    int main()
    {
        QUuid uuid = QUuid::createUuid();
        std::cout << qPrintable(uuid.toString()) << std::endl;
        return 0;
    }
    

    CoCreateGuid

    Windows下提供了函数CoCreateGuid用于生成GUID。需要使用的头文件是”objbase.h”,需要链接的库是ole32.lib,函数原型为:

    HRESULT CoCreateGuid(GUID *pguid);
    

    GUID的原型为

    typedef struct _GUID
    {
        DWORD Data1;
        WORD Data2;
        WORD Data3;
        BYTE Data4[8];
    } GUID;
    

    Java

    JDK 1.5以上支持UUID,用法如下:

    import java.util.UUID;
    String uuid = UUID.randomUUID().toString();
    展开全文
  • Linux中为网卡生成UUID

    2018-07-01 02:04:08
    某个网卡的UUID改错了或者删除了,重新配置的时候需要UUID怎么办在Linux或CentOS中,可以通过如下命令获取网卡的uuid信息:[root@ligle2 ~]# uuidgen eth107d07031-eb0f-4691-8606-befb46645433获取到eth1网卡的uuid...
    某个网卡的UUID改错了或者删除了,重新配置的时候需要UUID怎么办
    在Linux或CentOS中,可以通过如下命令获取网卡的uuid信息:
    [root@ligle2 ~]# uuidgen eth1
    07d07031-eb0f-4691-8606-befb46645433
    获取到eth1网卡的uuid,即可完成对ifcfg-eth1配置文件的修改,最后通过service network restart命令重启网卡,OK。

    作者:不能偷懒的这一辈子
    链接:http://www.jianshu.com/p/ccd40ffc0f7c
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    展开全文
  • linux生成uuid

    2018-11-30 15:40:48
    linux生成uuid [root@wz ~]# uuidgen | sed ‘s/-//g’ 0fae9d2da50d4b65beba98260409f905 [root@wz ~]# cat /proc/sys/kernel/random/uuid | sed ‘s/-//g’ 2898592f01e7422aaedd9917e5b6bdea

    linux下生成uuid

    [root@wz ~]# uuidgen | sed ‘s/-//g’
    0fae9d2da50d4b65beba98260409f905

    [root@wz ~]# cat /proc/sys/kernel/random/uuid | sed ‘s/-//g’
    2898592f01e7422aaedd9917e5b6bdea

    展开全文
  • linux c 生成uuid

    2014-12-29 10:28:36
    /********方法一**********/#include #include #include /**  * ... Create random UUID ... @param buf - buffer to be filled with the uuid string ...char *random_uuid( char
    /********方法一**********/<br>#include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    /**
     * Create random UUID
     *
     * @param buf - buffer to be filled with the uuid string
     */
    char *random_uuid( char buf[37] )
    {
        const char *c = "89ab";
        char *p = buf;
        int n;
        for( n = 0; n < 16; ++n )
        {
            int b = rand()%255;
            switch( n )
            {
                case 6:
                    sprintf(p, "4%x", b%15 );
                break;
                case 8:
                    sprintf(p, "%c%x", c[rand()%strlen(c)], b%15 );
                break;
                default:
                    sprintf(p, "%02x", b);
                break;
            }
     
            p += 2;
            switch( n )
            {
                case 3:
                case 5:
                case 7:
                case 9:
                    *p++ = '-';
                    break;
            }
        }
        *p = 0;
        return buf;
    }
     
    void main()
    {
        char guid[37];
        random_uuid(guid);
        printf("guid = %s\n", guid);
        random_uuid(guid);
        printf("guid = %s\n", guid);
        random_uuid(guid);
        printf("guid = %s\n", guid);
        random_uuid(guid);
        printf("guid = %s\n", guid);
    }

      运行如下:

    1
    2
    3
    4
    5
    6
    7
    daniel@debian:~/src$ gcc getuuid.c
    daniel@debian:~/src$ ./a.out
    guid = a397a255-53be-41fc-996b-521413e9e22d
    guid = 518e1f56-0857-49a7-a5d0-528277751b99
    guid = 4aed583d-6a52-49d5-b668-8ead955f3c35
    guid = b5c48cdd-6c11-453d-91b4-59cfce233d27
    daniel@debian:~/src$

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    /********方法二**********/
    /*libuuid是一个用于生成UUID的C库,具体用法参考http://linux.die.net/man/3/libuuid,示例如下:*/
     
    #include <stdio.h>
    #include <uuid/uuid.h>
     
    int main(int argc, char **argv)
    {
        uuid_t uuid;
        char str[36];
     
        uuid_generate(uuid);
        uuid_unparse(uuid, str);
     
        printf("%s\n", str);
     
        return 0;
    }
    在Linux下编译时需要链接uuid
     
    gcc -o uuid uuid.c -luuid
    在Ubuntu中,可以用下面的命令安装libuuid:
     
    sudo apt-get install uuid-dev
    展开全文
  • linux网卡生成UUID

    2019-11-21 10:21:31
    Linux或CentOS中,可以通过如下命令获取网卡的uuid信息: [root@ligle2 ~]# uuidgen eth1 07d07031-eb0f-4691-8606-befb46645433 获取到eth1网卡的uuid,即可完成对ifcfg-eth1配置文件的修改,最后通过service ...

    某个网卡的UUID改错了或者删除了,重新配置的时候需要UUID怎么办
    在Linux或CentOS中,可以通过如下命令获取网卡的uuid信息:

    [root@ligle2 ~]# uuidgen eth1
    07d07031-eb0f-4691-8606-befb46645433
    

    获取到eth1网卡的uuid,即可完成对ifcfg-eth1配置文件的修改,最后通过service network restart命令重启网卡,OK。

    展开全文
  • 密码: openssl rand -hex 10 uuid: uuidgen
  • linux生成uuid

    2019-06-17 16:35:36
    问题现象 用vmwareworkstation搭建centos 7双网卡测试环境,通过system-config-network配置IP地址,在其列表里却无eth1这块网卡的信息,后我到/etc/sysconfig/network-scripts目录里查看,果不其然,该目录下并没有...
  • Linux & Windows上生成UUID/GUID 请见如下相关文章: boost uuid uuid in linux vs uuid in window[Parser] GUID是微软对Distributed coumputing environment (DCE) universally unique identifier 的实现,而...
  • Linux下面,有专门生成UUID命令: uuidgen [-r] [-t]。 即可以生成一个32位的字符串。这个是在命令行得到。在/usr/include/lib里面有个/uuid/uuid.h,其中定义了数据 uuid,无符号的字符指针。同时有专门生成...
  • Windows下称为guid,Linux下作为uuid生成唯一值,可将这种方法用作数据库,作为数据库主键的值。 方法一:利用随机数 #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #...
  • linux重新获取UUID

    2019-08-02 21:03:18
    问题:有些时候需要重新配置一下liunx系统的网卡配置,就是 /etc/...其中有一项UUID配置项比较难配。 [root@ligle2 network-scripts]# vi ifcfg-eth1 DEVICE=eth0 HWADDR=08:00:27:06:a3:94 TYPE=Ethernet UUID=942...
  • lib库一般生成UUID命令

    2018-06-21 17:37:22
    dmidecode -s system-uuid
  • 网络UUID、MAC地址 /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/udev/rules.d/70-persistent-net.rules
  • 注:UUID-Universally Unique IDentifiers全局唯一标识符一、Linux磁盘分区UUID的获取方法 1、[san@localhost ~]$ ls -l /dev/disk/by-uuid/ total 0lrwxrwxrwx 1 root root 10 2010-01-18 02:18 0733f5c1-cb85-4f98...
  • 更改linux分区的UUID

    2019-02-12 09:03:18
    UUID,Universally Unique IDentifier ,它是分区的一个标识,用的地方不多。 比如,/etc/fstab, 虚拟系统中分区等。 找到你系统中的分区 # blkid|grep UUID 更改某个分区UUID,先卸载分区,然后用如下命令。 # ...
  • 查看硬盘UUID 方法一:ls -l /dev/disk/...uuidgen 会返回一个合法的 uuid,结合 tune2fs 可以新生成一个 uuid 并写入 ext2,3,4 分区中: 比如新建或改变 sda5 的 uuid (需要 root 权限) uuidgen | xargs tune2fs
  •   修改硬盘UUID:   uuidgen 会返回一个合法的 uuid,结合 tune2fs 可以新生成一个 uuid 并写入 ext2,3,4 分区中: 比如新建或改变 sda5 的 uuid (需要 root 权限)uuidgen | xargs ...
1 2 3 4 5 ... 20
收藏数 15,595
精华内容 6,238