在NW.JS下的OSX中获取任何类型的唯一标识符

时间:2017-09-17 20:54:48

标签: javascript macos node-webkit nwjs

我正在NW.JS中编写一个应用程序,需要能够将应用程序锁定到特定的机器上。我希望能够以编程方式获得每台机器唯一的字符串或值。

我尝试过使用这个似乎有效的https://www.npmjs.com/package/serial-number,直到我在两台机器上为两台机器生成相同序列号的机器上尝试它。我已经尝试通过硬件MAC地址和许多其他插件识别,这些插件现在都标记为“折旧”。

我已经读过苹果已经锁定OSX安装上的任何唯一标识符,理由是隐私问题。

我们现在还没有找到任何一种方法吗?我听说有人在他们的应用程序的第一次启动时随机生成一个字符串,并以某种方式将其放入钥匙串,但我真的不明白如何在NW.JS中完成。

有人知道怎么做吗?

1 个答案:

答案 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上测试它。