ایجاد شناسه ی منحصر به فرد برای هر سیستم
نویسنده: مهران موسوی
تاریخ: ۱۳۹۱/۱۱/۱۲ ۱۲:۱۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using Microsoft.Win32;
using System.Management;
namespace ConsoleApplication1
{
class Program
{
private static string GetSystemCode_int1(byte[] byte_0)
{
if (byte_0 != null)
{
return Convert.ToBase64String((new MD5CryptoServiceProvider()).ComputeHash(byte_0));
}
else
{
return string.Empty;
}
}
private static string GetSystemCode_int0(string string_2)
{
if (!string.IsNullOrEmpty(string_2))
{
return GetSystemCode_int1(Encoding.UTF8.GetBytes(string_2));
}
else
{
return string.Empty;
}
}
public static string GetSystemCode()
{
string key = null;
if (key == null)
{
string empty = string.Empty;
try
{
ManagementClass managementClass = new ManagementClass("win32_processor");
ManagementObjectCollection instances = managementClass.GetInstances();
foreach (ManagementBaseObject instance in instances)
{
try
{
empty = string.Concat(empty, instance.Properties["processorID"].Value.ToString());
break;
}
catch
{
}
}
}
catch
{
try
{
ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher("Select * From Win32_BaseBoard");
foreach (ManagementBaseObject managementBaseObject in managementObjectSearcher.Get())
{
empty = string.Concat(empty, managementBaseObject["SerialNumber"].ToString().Trim());
}
}
catch
{
}
}
try
{
ManagementObject managementObject = new ManagementObject("win32_logicaldisk.deviceid=\"C:\"");
managementObject.Get();
empty = string.Concat(empty, managementObject["VolumeSerialNumber"].ToString());
}
catch
{
}
if (string.IsNullOrWhiteSpace(empty))
{
empty = Environment.MachineName;
}
key = GetSystemCode_int0(empty);
}
return key;
}
static void Main(string[] args)
{
Console.WriteLine(GetSystemCode());
Console.ReadKey();
}
}
}