Получите ЛЮБОЙ уникальный идентификатор в OSX под NW.JS

Я пишу приложение на NW.JS, и мне нужно иметь возможность заблокировать приложение для определенных машин. Я хотел бы иметь возможность программно получить любую строку или значение, уникальное для каждой машины.

Я пытался использовать этот https://www.npmjs.com/package/serial-number который, казалось, работал, пока я не попробовал его на двух машинах, где обе машины генерировали один и тот же серийный номер для процессора. Я пытался идентифицировать с помощью аппаратного MAC-адреса и множества других плагинов, которые теперь помечены как «устаревшие».

Я читал, что Apple заблокировала любые уникальные идентификаторы в установке OSX, ссылаясь на соображения конфиденциальности в качестве причины.

Есть ли какой-то подход, который мы можем использовать сейчас, который я пока не смог найти? Я слышал о людях, которые случайным образом генерировали строку при первом запуске своего приложения и каким-то образом помещали ее в цепочку для ключей, но я действительно не понимаю, как это будет сделано в NW.JS.

Кто-нибудь знает, как это сделать?


person Community    schedule 17.09.2017    source источник


Ответы (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.

person dimacpp    schedule 18.09.2017