您可以从 UUID 中提取什么类型的数据?

2024-01-31

我知道我们可以轻松提取 uuid 版本号。有没有可靠的方法来提取时间戳、MAC 地址等信息?

Thanks!


符合标准的 UUID 可能是几种变体之一,它看起来像这样:

AAAAAAAA-BBBB-CCCC-DDDD-FFFFFFFFFFFF

DDDD 部分的第一个(十六进制)数字决定了变体。

如果它是 8,9,A,B 之一,则符合当前规范 (0-7保留用于向后兼容,C、D保留给Microsoft,E、F保留供将来使用)

如果符合当前规范,请检查确定 UUID 版本的 CCCC 部分的第一位数字:

  1. 基于时间,具有唯一或随机主机标识符 (MAC)
  2. DCE 安全版本(带有 POSIX UID)
  3. 基于名称(MD5 哈希)
  4. Random
  5. 基于名称(SHA-1 哈希)

版本 4 只是随机选择的。

版本 3 和版本 5 是通过散列并丢弃一些位生成的,这意味着您基本上没有机会从中恢复任何信息。有关如何构建它的详细信息可以在RFC4122 http://www.ietf.org/rfc/rfc4122.txt或在UUID 生成器网页 http://www.famkruithof.net/guid-uuid-namebased.html.

我找不到任何版本 2 UUID,因此我没有检查如何提取数据。

版本 1 是根据时间戳和当前主机 MAC 地址生成的。 (如果您设置了 MAC 地址的“广播/多播”位,该标准还允许使用随机地址。)

以下 perl 片段从版本 1 uuid 中解析 MAC 地址和时间:

my $uuid="AAAAAAAA-BBBB-CCCC-DDDD-FFFFFFFFFFFF";
$uuid=~tr/-//d;
my $time_low=hex substr($uuid,2* 0,2*4);
my $time_mid=hex substr($uuid,2* 4,2*2);
my $version =hex substr($uuid,2* 6,1);
my $time_hi =hex substr($uuid,2* 6+1,2*2-1);

my $time=($time_hi*(2**16)+$time_mid)*(2**32)+$time_low;
my $epoc=int($time /10000000) - 12219292800;
my $nano=$time-int($time/10000000)*10000000;

my $clk_hi  =hex substr($uuid,2* 8,2*1);
my $clk_lo  =hex substr($uuid,2* 9,2*1);
my $node    =substr($uuid,2*10,2*6);

$node=~/^(..)(..)(..)(..)(..)(..)$/ || die;
$node="$1:$2:$3:$4:$5:$6";

print "time: ",scalar localtime $epoc," +",$nano/10000,"ms\n";
print "clock id: ",$clk_hi*256+$clk_lo,"\n";
print "Mac: $node\n";

my $byte=hex $1;
if(hex($1)&1){
    print "broadcast/multicast bit set.\n";
};

最后但并非最不重要的一点是,有几个分配的 UUID,例如GPT 分区 http://en.wikipedia.org/wiki/GUID_Partition_Table.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

您可以从 UUID 中提取什么类型的数据? 的相关文章

  • Javascript 相当于 Java 的 UUID 类

    在java中 你可以做类似的事情 UUID id UUID fromString eb66c416 4739 465b 9af3 9dc33ed8eef9 long msb id getMostSignificantBits long ls
  • Guid.NewGuid(); .NET Core 的幕后花絮

    昨天研究这个主题 我发现了几个有趣的问题 例如this one https stackoverflow com questions 35366368 does uuidcreate use a csprng 关于 GUID 最终是如何生成的
  • 使用 UUID npm 模块出现奇怪的错误。我究竟做错了什么?

    Getting 错误 D test node modules uuid 的包导出未定义 子路径 一直当我require it 操作系统 Windows 10 专业版节点版本 v13 1 0NPM 版本 6 14 4 我从头开始创建了一个项目
  • iOS 7 访问企业应用程序中的 UUID 值(不适用于 AppStore)

    Apple 自 iOS7 起已弃用且无法使用该属性 uniqueIdentifier 其他属性 identifierForVendor and advertisingIdentifier有一个大问题 他们在卸载并重新安装应用程序后更改了值
  • 如何以编程方式从ios7设备获取未更改的设备ID

    我需要获取唯一的设备 ID 来填充数据库中的唯一用户 ID 我使用以下代码来实现这一点 NSString strApplicationUUID UIDevice currentDevice identifierForVendor UUIDS
  • iOS Swift Mi Scale 2 蓝牙称重

    我正在编写一个可以从小米米秤2获取体重测量的应用程序 读取所有可用的uuid后 只有 181B 连接 特别是 2A9C 特征 蓝牙GATT中的体重测量 收到通知 值数据为 2 164 178 7 1 1 2 58 56 253 255 24
  • PostgreSQL - 按 UUID 版本 1 时间戳排序

    我在用UUID版本1 https en wikipedia org wiki Universally unique identifier Version 1 date time and MAC address 作为主键 我想按 UUID v
  • 通过注释使用 Hibernate UUIDGenerator

    我使用我的 uuid 如下 Id GeneratedValue generator uuid GenericGenerator name uuid strategy uuid Column name uuid unique true pri
  • 使用Java读取MySQL二进制(16) UUID

    这应该是一个非常简单的问题 我只是在这里遗漏了一些基本的东西 我正在经历 那些日子之一 无法使用 Hibernate 或其他 ORM 使用 Java 准备语句 MySQL 的东西 CREATE TABLE article articleID
  • 如何用C语言生成GUID?

    我想生成插入 SQLite 数据库的 guid 即数据库本身不支持 但是 我想控制某些属性 用于生成不断增加的指导值的有序性 计算机独立性 数据库是公共的 可能 可能不希望 guid 允许某人将数据追溯到特定机器 足够 的随机性 guid
  • UUID 转换为无符号整数

    有没有地方可以将 UUID 压缩 转换 编码 加密为无符号整数 我从 sql 表中读取 UUID 历史记录很难看 我无法更改 我只有一个 unsigned int 来存储它 这是 C 以防产生影响 对此有什么想法吗 谢谢 礼萨 正如其他人所
  • HashMap UUID 还是 String 作为键?

    HashMap
  • 打字稿中的 GUID / UUID 类型

    我有这个功能 function getProduct id string return some product 其中 id 实际上是 GUID Typescript 没有 guid 类型 是否可以创建类型GUID手动 function g
  • MySql 插入选择 uuid()

    假设你有一张桌子 item 有字段 id VARCHAR 36 NOT NULL order BIGINT UNSIGNED NOT NULL And Unique id 然后你打电话 INSERT INTO item item id it
  • android bluetoothadapter.startLeScan,按 UUID 过滤

    我想使用以下命令扫描 BLE 设备startLeScan UUID serviceUuids LeScanCallback callback 方法 现在我有一个UUID 它是一个16位的值 例如 00000000 0000 1000 800
  • 在 Swift 3 中从 UUID 获取数据

    我用 Objective C 编写了以下代码 我试图在 Swift 3 中使用它 一些等效函数似乎在 Swift 3 中不可用 下面的代码是 Objective C 中的代码 NSUUID vendorIdentifier UIDevice
  • 在 org.apache.spark.sql.types.DataTypes 中找不到 uuid

    我们有一个 PostgreSQL 表 其中 UUID 作为列之一 我们如何将 Spark 数据集中的 UUID 字段 使用 Java 发送到 PostgreSQL DB 我们无法在 org apache spark sql types Da
  • UUID最大字符长度

    我们使用 UUID 作为 Oracle DB 的主键 并尝试确定 VARCHAR 的适当最大字符长度 显然这是 36 个字符 但我们注意到生成的 UUID 比这个长 长度最多为 60 个字符 有谁知道 UUID 的合适最大字符长度 RFC4
  • 在 JavaScript 中生成 UUID 时发生冲突

    这涉及到这个问题 https stackoverflow com questions 105034 how to create a guid uuid in javascript 我正在使用下面的代码这个答案 https stackover
  • 将 UUID 存储为 base64 字符串

    我一直在尝试使用 UUID 作为数据库键 我希望占用尽可能少的字节数 同时仍然保持 UUID 表示形式的可读性 我认为我已经使用 base64 将其减少到 22 个字节 并删除了一些尾随的 这些 对于我的目的来说似乎没有必要存储 这种方法有

随机推荐

  • 黄油刀不会注射

    我正在尝试使用牛油刀 http jakewharton github io butterknife 这些天我在 Android Studio 工作 但它因一些奇怪的问题而让我失望 我曾经在 eclipse 上尝试过 Butter Knife
  • 关闭 Java 8 流

    如果我们像这样使用 Java 8 Streamlist stream filter collect 这个流什么时候关闭 作为下一个示例 我们关闭流是一种好的做法吗 Stream
  • 玩!框架 2 Android 客户端的 REST 身份验证和授权

    我目前正在开发一个具有网页版本 Play Framework 2 2 x 和 Android 客户端的应用程序 因为玩 完全 RESTful 我想在 Play 之间进行通信 以及带有 JSON 请求和响应的 Android 该应用程序的 W
  • 如何从当前文件夹外部导入模块?

    我正在尝试从其目录外部导入模块a py 该目录看起来像这样 project folder 1 a py folder 2 init py b py 我的代码在a py中 contents of a py from folder 2 impo
  • angularjs 路线 - 跳转到路线链接上的特定页面部分

    我正在尝试在 Angular 锚点和路由之间进行某种混合 我确实可以在主页中使用它 因为锚点部分在那里 但是 如果我在另一个页面中 它就不会 谁能指出我正确的方向 如何正确地做到这一点 这是我到目前为止所拥有的 freddoApp conf
  • 在电子邮件中嵌入标识符

    我正在尝试将 ID 嵌入到电子邮件中 以便当收件人回复我的系统发出的电子邮件时 我的系统可以拾取它并将两者匹配在一起 我尝试附加自定义标头 但是当用户回复时 该标头会被删除 我尝试在电子邮件中嵌入 HTML 评论 但 Outlook 在创建
  • 在 Java/JavaFX 中向变量添加监听器,该监听器在变量更改时被调用

    我知道JavaFX中有侦听器 并且我确定Java 但我对如何实施它们感到困惑 我有一个布尔变量 它在我的程序中不断变化 每次更改布尔值时 我都希望运行一个函数 myFunc 这很容易做到吗 如果您使用 JavaFX 2 那么它为 JavaB
  • 在 C# 中查找并替换树节点

    我的 C 代码中有一个树视图 我想在单击按钮时将整个树视图中出现的所有树节点替换为不同的文本 例如 我有 3 次出现 文本 为 手动 的节点 我想用文本 自动 替换所有这 3 个节点 问题是这 3 个节点位于树视图中的 3 个不同分支下 它
  • 从数组中删除重复的对象但合并嵌套对象

    当前有一系列包含游戏版本的对象 然而 游戏发布可以在多个平台上进行 并且这些平台在数组中显示为单独的对象 我希望通过比较游戏 ID 来删除重复的游戏 但合并平台对象 我尝试过使用reduce函数 它成功地通过游戏id删除了重复的对象 但我无
  • Java JLabel/JButton:在某些系统上我得到“...”(省略号),而在某些系统上我没有。我怎样才能强制禁用省略号?

    在大多数系统上 我的 JLabel 中的内容显示得很好 它的驻留方式也应始终足够大以显示其内容文本 因为我基本上这样做 label setText text label setFont new Font fontName 0 12 int
  • Python 3,列表推导式、范围以及如何与外部变量进行比较

    我有一个代表库存物品及其价值的类 class stock def init self stockName stockType value self name stockName self type stockType self value
  • 活动/片段转换是否与 Lollipop 之前的设备兼容?

    我正在尝试在 Lollipop 之前的设备 4 x 上使用共享元素进行活动转换 是否可以 到目前为止 我正在尝试这样做 public class RewardDetail extends ActionBarActivity Override
  • 通过 aidl 从另一个服务在绑定服务中执行 httprequest 时出现 Networkonmainthread 异常

    我有一个通过aidl 绑定另一个服务的服务 当通过aidl 从callign 服务调用该方法时 绑定的服务执行httprequest 并返回响应 我在执行此操作时遇到 Networkonmainthread 异常 使用 Asynctask
  • 如何流式传输以编程方式执行的 ScriptBlock 的输出?

    我的程序执行用户指定的脚本块 我希望它增量地返回其输出 例如 如果脚本块运行很长时间 然而 ScriptBlock的API似乎没有公开任何与管道相关的东西 它有一些看起来像是我需要的函数 InvokeWithPipe 但它们是内部的 并且它
  • SELECT MySQL 行,其中今天的日期位于两个 DATE 列之间

    如何获取表中今天日期位于该行的两个 DATE 列之间 含 之间的行 例如 以表的这两列为例 我怎样才能得到4月10日的第一行和第二行 或者25日的第三行 包括在内 就像我说的 任何帮助将不胜感激 提前致谢 您可以添加条件如下 DATE NO
  • Haskell 程序中的 GLUT 错误

    我正在使用 OpenGL 和 Haskell 我尝试了一个示例程序 它使用 ghc 编译器成功编译 但是当我运行它时 出现此错误 用户错误 未知的 GLUT 条目 glutInit 我搜索了这个问题 但大多数答案都与 mac OS X 和
  • “imfilter”和“conv2”之间的差异 [MATLAB]

    我使用这两个函数来查找刻度上的边缘 您有一个输入图像 您可以将蒙版 例如 prewitt 应用于输入图像 并获得结果图片 mypic imread examplepic jpg hy fspecial prewitt yimfilter i
  • 哪些设计模式可以应用于配置设置问题?

    在大型且复杂的软件产品中 管理可配置设置成为一个主要难题 我见过的解决这个问题的两种方法是 让系统中的每个组件从配置文件或注册表设置加载自己的配置 有一个设置加载器类 用于加载所有可配置的系统设置 并使每个组件查询设置加载器以获取其设置 我
  • strtoi 无法将字符串转换为整数,返回 NA

    从字符串到整数的 32 位二进制字符串转换失败 见下文 strtoi 10101101100110001110011001111111 base 2 1 NA 有什么想法可能是什么问题吗 看起来像strtoi无法处理大于的数字2 31 st
  • 您可以从 UUID 中提取什么类型的数据?

    我知道我们可以轻松提取 uuid 版本号 有没有可靠的方法来提取时间戳 MAC 地址等信息 Thanks 符合标准的 UUID 可能是几种变体之一 它看起来像这样 AAAAAAAA BBBB CCCC DDDD FFFFFFFFFFFF D