我想为每个设备生成一个唯一的ID。目前我正在使用fingerprint.js。我的代码是:
var fingerprint = new Fingerprint().get();
但我希望使用任何插件生成唯一ID。有人能帮帮我吗?
答案 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();