Сделано с ❤️ для Tauri
v5.0.1 - 21 января, 2026
- Изображение исключено из крейта для уменьшения размера пакета.
v5.0.0 - 21 января, 2026
Important
Machine ID для Linux изменится в этой версии. Используйте эту версию только для новых проектов или обновите хеши устройств ваших текущих пользователей.
- Добавлена поддержка iOS.
- Добавлен дополнительный источник получения идентификатора в Linux через
/sys/class/dmi/id/product_uuid.
Создание хэш идентификатор устройства.
Используются максимально статичные параметры системы, которые позволяют генерировать надежные хеши устройств для лицензирования ваших программ.
- MacOS
- Windows
- Linux
- iOS
Список параметров, которые используются на каждой из платформ.
system_profiler SPHardwareDataTypeКоманда возвращает информацию о аппаратных характеристиках компьютера. Используемые параметры:
-
Model Number: Этот параметр представляет собой номер модели компьютера или устройства. Он используется для уникальной идентификации конкретной модели в рамках производителя.
-
Serial Number: Этот параметр является уникальным серийным номером компьютера или устройства. Он используется для идентификации конкретной единицы в рамках определенной модели.
-
Hardware UUID: Этот параметр представляет уникальный идентификатор аппаратного обеспечения (UUID) компьютера или устройства. Он служит для обеспечения уникальной идентификации конкретной единицы в различных системах и средах.
-
Provisioning UDID: Этот параметр представляет уникальный идентификатор устройства (UDID), который может использоваться в процессе предоставления или настройки устройства, обычно в корпоративной или управляемой среде.
system_profiler SPSecureElementDataTypeКоманда возвращает информацию о безопасном элементе (Secure Element). Этот элемент используется для хранения зашифрованных данных, таких как информация о платежных картах и другие конфиденциальные данные. Используемые параметры:
Platform ID: Уникальный идентификатор платформы, к которой относится Secure Element (безопасный элемент).- SEID: Уникальный идентификатор безопасного элемента (Secure Element ID). Создается при прошивки NFC чипа на заводе производителя.
PowerShell - расширяемое средство автоматизации. Используемые параметры:
-
powershell -command "Get-WmiObject Win32_ComputerSystemProduct": Возвращает уникальный идентификатор (UUID) продукта компьютера. Обычно связан с материнской платой компьютера. В редких случаях он может измениться после замены или переустановки материнской платы или после изменения BIOS/UEFI на устройстве. -
powershell -command "Get-WmiObject Win32_BIOS": Возвращает серийный номер BIOS компьютера. Обычно остается постоянным и не подлежит изменению. -
powershell -command "Get-WmiObject Win32_BaseBoard": Возвращает серийный номер базовой платы компьютера. Обычно остается постоянным и не подлежит изменению. -
powershell -command "Get-WmiObject Win32_Processor": Возвращает идентификатор процессора компьютера. Должен оставаться неизменным, за исключением случаев замены процессора.
- machine-id: Идентификатор (ID) машины, который используется для уникальной идентификации компьютера в Linux системах.
К сожалению этот параметр подвержен изменению со стороны пользователя и пока не найдено надежного решения для Linux..
- Keychain: Идентификатор генерируется случайным образом (SHA-256 от Nanoid + Timestamp) и сохраняется в Keychain. Он сохраняется при переустановке приложения на реальных устройствах.
Добавить зависимость в Cargo.toml
[dependencies]
mid = "5.0.1"Или установить с помощью Cargo CLI
cargo add midlet machine_id = mid::get("mySecretKey").unwrap();Пример: 3f9af06fd78d3390ef35e059623f58af03b7f6ca91690f5af031b774fd541977let mid_data = mid::data("mySecretKey").unwrap();MacOS пример: MidData { key: "mySecretKey", result: ["ModelNumber", "SerialNumber", "HardwareUUID", "SEID"], hash: "3f9af06fd78d3390ef35e059623f58af03b7f6ca91690f5af031b774fd541977" }mid::print("mySecretKey");MacOS пример:
MID.print[key]: mySecretKey
MID.print[result]: ["ModelNumber", "SerialNumber", "HardwareUUID", "SEID"]
MID.print[hash]: 3f9af06fd78d3390ef35e059623f58af03b7f6ca91690f5af031b774fd541977MID key- Секретный ключ для хэшированияMID result- Массив параметров OSMID hash- Хеш SHA-256 от result
Эти данные не участвуют в формировании хеша устройства. На текущий момент доступно только для MacOS.
let additional_data = mid::additional_data().unwrap();
println!("{:?}", additional_data);AdditionalData { username: "doroved", hostname: "MacBook-Pro--doroved.local", model_name: "MacBook Pro", os_name: "Sequoia", os_version: "15.7", os_full: "Sequoia 15.7", chip: "Apple M1 Pro", chip_short: "m1 pro", memsize: 16, cpu_core_count: 8, languages: ["ru-RU", "bg-RU", "en-RU"] }Здесь я буду делиться своими разработками и проектами https://x.com/doroved