// node and clockseq need to be initialized to random values if they're not
// specified. We do this lazily to minimize issues related to insufficient
// system entropy. See #189
if (node == null || clockseq == null) {
const seedBytes = options.random || (options.rng || rng)();
if (node == null) {
// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
node = _nodeId = [
seedBytes[0] | 0x01,
seedBytes[1],
seedBytes[2],
seedBytes[3],
seedBytes[4],
seedBytes[5],
];
}
// later in the source code ...
// `node`
for (let n = 0; n < 6; ++n) {
b[i + n] = node[n];
}
1条答案
按热度按时间5rgfhyps1#
这是不可能的。从浏览器读取系统接口的mac地址是不可能的。至少用标准的API是不可能的。那将是一场隐私噩梦。
检查
uuid
的实现(或您打算使用的任何软件包),您会发现它们不会使用MAC地址作为版本1的UUID--只是因为不可能从浏览器获得此类信息。维基百科指出:
版本1 UUID由时间和节点ID**(通常为MAC地址)**生成
(强调我)
所以节点ID通常是一个mac地址。虽然wikipedia不是生成UUID的权威来源,但我认为我们可以安全地假设这是事实(节点ID通常是mac地址)。
查看
uuid
包的源代码:我们可以看到,
uuid
包只是使用了一个随机值作为mac地址。