What is a hardware id?
hardware id (sometimes also called as machine id) is a string that stores information about the machine's hardware.
Consider hardware id as a machine's "fingerprint". For example, if a hardware id is based on HDD characteristics, it remains unchanged until the HDD is replaced with a new one. Thus, hardware id can be used to lock some software to the particular machine.
A license key stores hardware id in the encrypted form.
To generate hardware id, ArmDot combines some hardware characteristics, calculates hash and converts it to a string, using base64 encoding scheme.
ArmDot can use characteristics of the following hardware: CPU (a central processor), and/or HDD (a system hard disk drive), and/or Motherboard. ArmDot can use any combination of this hardware.
How to place a hardware id to the license key?
If you use C/C++ key generator, choose the option --license-hardware-id.
If you use php key generator, use "hardwareId" of $registration_information.
If you use ArmDot UI, click to Licenses - Add to open New License dialog box. Then check Enable Hardware Id and either enter hardware id, or click to Generate... to generate a current machine's hardware id.
How to generate a hardware id?
Use ArmDot.Client.Api.GetCurrentMachineHardwareId to generate hardware id of the current machine programmatically.
Use ArmDotConsole.exe with options --generate-hardware-id and --hardware to generate hardware id from the command line.
If you use ArmDot UI, click to Tools - Generate Hardware Id.
How to check a hardware id?
To check a hardware id programmatically use ArmDot Client API.
First of all call ArmDot.Client.Api.PutKey to set the license key.
Then call ArmDot.Client.Api.GetLicenseState to verify the license key.
If ArmDot.Client.Api.GetLicenseState returns ArmDot.Client.Api.LicenseKeyState.Valid, either the serial key doesn't store the hardware id, or the hardware id is correct.
If ArmDot.Client.Api.GetLicenseState returns ArmDot.Client.Api.LicenseKeyState.BadHardwareId, the serial key stores the hardware id that differs from the current machine's hardware id, i.e. the serial key was generated for another machine.