请问C#取获取CPU序列号和硬盘老是变是怎么回事。
我想做软件授权。然后用下面方法生成一个序列号
/// <summary>
/// 获取软件序列号
/// </summary>
/// <returns></returns>
public string GetSoftId()
{
string softId = GetCPUID() + GetHardID();
return softId.ToMD5Encryption();
}
/// <summary>
/// 获取CPU序列号
/// </summary>
/// <returns></returns>
public string GetCPUID()
{
string cpuInfo = "";//cpu序列号
ManagementClass cimobject = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach (ManagementObject mo in moc)
{
cpuInfo = cpuInfo + mo.Properties["Name"].Value.ToString();
}
return cpuInfo;
}
/// <summary>
/// 获取硬盘ID
/// </summary>
/// <returns></returns>
public string GetHardID()
{
String HDid = "";
ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc1 = cimobject1.GetInstances();
foreach (ManagementObject mo in moc1)
{
HDid = HDid + (string)mo.Properties["Model"].Value.ToString();
}
return HDid;
}
/// <summary>
/// 返回MD5加密后的字符
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string ToMD5Encryption(this string str)
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower();
}
我先是使用 GetSoftId()方法生成一个序列号,然后将这个序列号RSA加密后存在系统目录下的一个txt文件中。用户在运行系统时,先还是使用 GetSoftId()方法取这个序列号,再通过同一个RSA私钥加密后再与txt中的文件内容对比,不匹配的话就提示需要重新注册。
一个很奇怪的问题,在用户那边注册后,重启下电脑又不行了,有时甚至不重启电脑,登出系统再登入就不行了,提示要重新注册。请问大家这种情况问题最有可能出在什么地方?
/// <summary>
/// 获取软件序列号
/// </summary>
/// <returns></returns>
public string GetSoftId()
{
string softId = GetCPUID() + GetHardID();
return softId.ToMD5Encryption();
}
/// <summary>
/// 获取CPU序列号
/// </summary>
/// <returns></returns>
public string GetCPUID()
{
string cpuInfo = "";//cpu序列号
ManagementClass cimobject = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach (ManagementObject mo in moc)
{
cpuInfo = cpuInfo + mo.Properties["Name"].Value.ToString();
}
return cpuInfo;
}
/// <summary>
/// 获取硬盘ID
/// </summary>
/// <returns></returns>
public string GetHardID()
{
String HDid = "";
ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc1 = cimobject1.GetInstances();
foreach (ManagementObject mo in moc1)
{
HDid = HDid + (string)mo.Properties["Model"].Value.ToString();
}
return HDid;
}
/// <summary>
/// 返回MD5加密后的字符
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string ToMD5Encryption(this string str)
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower();
}
我先是使用 GetSoftId()方法生成一个序列号,然后将这个序列号RSA加密后存在系统目录下的一个txt文件中。用户在运行系统时,先还是使用 GetSoftId()方法取这个序列号,再通过同一个RSA私钥加密后再与txt中的文件内容对比,不匹配的话就提示需要重新注册。
一个很奇怪的问题,在用户那边注册后,重启下电脑又不行了,有时甚至不重启电脑,登出系统再登入就不行了,提示要重新注册。请问大家这种情况问题最有可能出在什么地方?
...全文
相关推荐
c#获取CPU序列号、主板序列号、硬盘ID
在C#编程中,获取计算机硬件的信息,如CPU序列号、主板序列号和硬盘ID,是常见的需求。这些信息对于软件注册、硬件检测或者设备跟踪等应用场景非常有用。以下将详细讲解如何使用C#实现这些功能。
获取硬盘序列号 CPU MAC win7 可用
同时,了解如何手动获取这些信息也是必要的,以便在没有此类工具的情况下也能解决问题。总之,掌握获取硬盘序列号、CPU信息和MAC地址的方法是IT专业人士的基本技能。
获取电脑硬盘,CPU,主板序列号,以及主板信息
在IT领域,获取电脑硬件信息是一项基础但重要的任务,尤其对于系统管理员、软件开发者和硬件维护人员来说。本文将详细讲解如何使用C#编程语言来获取电脑硬盘、CPU、主板的序列号以及主板的详细信息。
获取硬盘唯一序列号和机器唯一id
在IT领域,获取硬盘唯一序列号和机器唯一ID是常见的需求,这主要涉及到系统管理和软件激活等方面。
一个读取硬盘序列号与CPU序列号的DLL
本文介绍了一个窗体应用程序,它具备基本的窗体操作功能,并能通过加载外部DLL库实现硬盘和CPU序列号的获取、MD5哈希值生成以及DES算法字符串处理。程序使用VCL库创建主窗体,并通过WinMain函


