C#实现注册机的主要思路:由于本次注册机是给一个07年VB程序增加注册功能,所以我将注册机分为了两个部分,一部分获得电脑的机器码(硬盘卷标号和CPU序列号),使用MD5加密之后写入数据库中;另一部分将获得机器码MD5加密后的字符串写入C盘隐藏文件夹中,VB程序注册时通过读取隐藏文件中的字符串对比数据库中的字符串是否相同来判断注册码是否正确,不根据账户,只根据电脑的硬件信息。
其实获取机器码部分可以直接在VB程序中完成,但是由于时间紧急(一个下午),而且用过VB,所以只能粗糙的解决了。
以下列出主要使用的方法
一、获取硬盘卷标号
public string GetDiskVolumeSerialNumber()
{
ManagementClass mc = new ManagementClass("win32_NetworkAdapterConfiguration");
ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");
disk.Get();
return disk.GetPropertyValue("VolumeSerialNumber").ToString();
}
二、获取CUP序列号
public string GetCpu()
{
string strCpu = null;
ManagementClass myCpu = new ManagementClass("win32_Processor");
ManagementObjectCollection myCpuCollection = myCpu.GetInstances();
foreach (ManagementObject myObject in myCpuCollection)
{
strCpu = myObject.Properties["Processorid"].Value.ToString();
}
return strCpu;
}
三、生成机器码
public string GetMNum()
{
string strNum = GetCpu() + GetDiskVolumeSerialNumber();
return strMNum;
}
四、根据机器码通过MD5加密生成机器码
MD5代码网上很多
这样一个简单粗暴的注册机就完成了,当然其中还有一些数据处理就不一一列出了。