uuid类型 - GUID和UUID之间是否有区别?




uuid是什么 (5)

我看到了这两个缩写,我想知道GUID和UUID之间是否有区别?


GUID在与UUID相同的地方不一定使用128位的值。 例如, RSS规范将GUID定义为任何您选择的字符串,只要它是唯一的,并带有“isPermalink”属性即可指定您正在使用的值只是返回到要联合的项目的永久链接。


GUID是微软对UUID标准的实施。

Wikipedia

术语GUID通常是指Microsoft对通用唯一标识符 (UUID)标准的实现。

来自同一维基百科文章的更新报价:

RFC 4122本身规定UUID“也被称为GUID”。 所有这些都表明,“GUID”虽然最初是指Microsoft使用的UUID的变体,但它已成为UUID的替代名称......


不是真的。 GUID更以微软为中心,而UUID更广泛地使用(例如urn:uuid: URN方案和CORBA方面)。


微软的guid可以采用两个大括号包围的uuid形式。


我的实现从Java的UUID字节顺序转换为GUID

/**
 * Fix for endian differences between UUID and GUIDS 
 *
 * @param uuid
 * @return
 */
protected static byte[] UuidToGuidByteArray(UUID uuid)
{
    ByteBuffer bb = ByteBuffer.wrap(new byte[16]);
    bb.putLong(uuid.getMostSignificantBits());
    bb.putLong(uuid.getLeastSignificantBits());

    byte[] out = bb.array();
    byte swap;

    //swap first 4
    swap = out[0];
    out[0] = out[3];
    out[3] = swap;

    swap = out[1];
    out[1] = out[2];
    out[2] = swap;

    //swap next 2
    swap = out[4];
    out[4] = out[5];
    out[5] = swap;

    //swap next 2
    swap = out[6];
    out[6] = out[7];
    out[7] = swap;

    return out;
}