我正在NW.JS中编写一个应用程序,需要能够将应用程序锁定到特定的机器上。我希望能够以编程方式获得每台机器唯一的字符串或值。
我尝试过使用这个似乎有效的https://www.npmjs.com/package/serial-number,直到我在两台机器上为两台机器生成相同序列号的机器上尝试它。我已经尝试通过硬件MAC地址和许多其他插件识别,这些插件现在都标记为“折旧”。
我已经读过苹果已经锁定OSX安装上的任何唯一标识符,理由是隐私问题。
我们现在还没有找到任何一种方法吗?我听说有人在他们的应用程序的第一次启动时随机生成一个字符串,并以某种方式将其放入钥匙串,但我真的不明白如何在NW.JS中完成。
有人知道怎么做吗?
答案 0 :(得分:2)
以下是我的工作代码的片段(正在使用https://github.com/scravy/node-macaddress):
const macaddress = require('macaddress');
macaddress.one((err, macAddress) => {
let hardwareStr = JSON.stringify({
os: os.platform(),
hostname: os.hostname(),
mac: macAddress || 'n/a'
});
let id = crypto.createHash('sha256')
.update(hardwareStr)
.digest('hex');
// now id is machine-specific identifier without any sensitive information
});
注意:我现在无法在Mac上测试它。