为每个设备生成唯一ID

时间:2014-12-02 11:03:19

标签: javascript jquery logic uniqueidentifier

我想为每个设备生成一个唯一的ID。目前我正在使用fingerprint.js。我的代码是:

var fingerprint = new Fingerprint().get();

但我希望使用任何插件生成唯一ID。有人能帮帮我吗?

5 个答案:

答案 0 :(得分:7)

最后我找到了答案。此代码将始终为每个设备(在浏览器中)生成唯一ID。 uid是生成的唯一ID。

var navigator_info = window.navigator;
var screen_info = window.screen;
var uid = navigator_info.mimeTypes.length;
uid += navigator_info.userAgent.replace(/\D+/g, '');
uid += navigator_info.plugins.length;
uid += screen_info.height || '';
uid += screen_info.width || '';
uid += screen_info.pixelDepth || '';
console.log(uid);

谢谢大家支持我。

答案 1 :(得分:3)

例如:

function generateUUID(){
    var d = new Date().getTime();
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
        var r = (d + Math.random()*16)%16 | 0;
        d = Math.floor(d/16);
        return (c=='x' ? r : (r&0x3|0x8)).toString(16);
    });
    return uuid;
};

有关该主题的更多信息:Create GUID / UUID in JavaScript?

修改 在您的评论中,您想要随时为每台设备生成相同的ID。对于这样的任务,建立哈希是一种方法。获取您设备的任何属性/属性,这些属性/属性对于此设备是唯一的(无论它是什么,如果没有示例,很难说)。比从中构建一个哈希,例如:

var uniqueId = someHashFunction(device.property1 + device.property2 + ...);

互联网上有很多散列函数,例如你可以看一下这个函数:http://phpjs.org/functions/md5/这将为给定的属性返回一个唯一的值。

答案 2 :(得分:0)

您可以将时间戳用于唯一ID,并为其附加一些静态文本:

var uniqueID = "ID-"+(new Date()).getTime().toString();

答案 3 :(得分:0)

对于节点用户,此软件包有助于生成唯一的ID 安装:

npm i node-machine-id

代码:

import {machineId, machineIdSync} from 'node-machine-id';
 
// Asyncronous call with async/await or Promise
 
async function getMachineId() {
    let id = await machineId();
    ...
}
 
machineId().then((id) => {
    ...
})
 
// Syncronous call
 
let id = machineIdSync()
// id = c24b0fe51856497eebb6a2bfcd120247aac0d6334d670bb92e09a00ce8169365
let id = machineIdSync({original: true})
// id = 98912984-c4e9-5ceb-8000-03882a0485e4

答案 4 :(得分:-1)

最简单的方法是

var uuid = new Date().getTime().toString();