LevelcodeLicenseClient/Security/HwidService.cs
2026-03-25 16:34:45 -03:00

55 lines
1.5 KiB
C#

using System;
using System.Management;
using System.Security.Cryptography;
using System.Text;
namespace Levelcode_licenseCliente.Security
{
public static class HwidService
{
public static string ObterHwid()
{
string cpuId = ObterCpuId();
string diskId = ObterDiskId();
string bruto = cpuId + "|" + diskId;
using (SHA256 sha = SHA256.Create())
{
byte[] hash = sha.ComputeHash(Encoding.UTF8.GetBytes(bruto));
return BitConverter.ToString(hash).Replace("-", "");
}
}
private static string ObterCpuId()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("SELECT ProcessorId FROM Win32_Processor");
foreach (ManagementObject obj in searcher.Get())
return obj["ProcessorId"]?.ToString() ?? "CPU_UNKNOWN";
}
catch { }
return "CPU_UNKNOWN";
}
private static string ObterDiskId()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_PhysicalMedia");
foreach (ManagementObject obj in searcher.Get())
return obj["SerialNumber"]?.ToString() ?? "DISK_UNKNOWN";
}
catch { }
return "DISK_UNKNOWN";
}
}
}