0

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

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

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

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

有人知道怎么做这个吗?

4

1 回答 1

1

这是我的工作代码中的一个片段(它使用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 上测试它。

于 2017-09-18T00:51:26.730 回答