前提:目标计算机无网络,但可以通过软件生成注册申请文件,用U盘复制到有网络的电脑上上传给服务方,服务方据此生成注册授权文件,再经U盘导入目标计算机,进行注册。由于没有网络,无法在目标计算机采用网络验证模式保证注册不扩散。
求教:是否有法在注册申请文件中加入目标计算机的唯一信息,授权文件只在目标计算机有效?
已尝试:CPU ID有重复或无法获取,MAC理论上无重复、但可修改、无网卡或网卡禁用时无法取得,硬盘序列号有重复或无法获取、GUID理论上无重复但不知道如何验证...
求教:是否有法在注册申请文件中加入目标计算机的唯一信息,授权文件只在目标计算机有效?
已尝试:CPU ID有重复或无法获取,MAC理论上无重复、但可修改、无网卡或网卡禁用时无法取得,硬盘序列号有重复或无法获取、GUID理论上无重复但不知道如何验证...
然后想到MAC好像有软件可以改。。
还是读取什么CPU+网卡+主板的码吧。。
//获取磁盘序列号
try
{
System.Management.ManagementObjectSearcher cmicWmi = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
System.UInt32 tmpUint32 = 0;
foreach(ManagementObject cmicWmiObj in cmicWmi.Get())
{
tmpUint32 = Convert.ToUInt32(cmicWmiObj["signature"].ToString());
}
this.textBox1.Text = tmpUint32.ToString();
this.gProgressBar1.Value ++;
}
catch(Exception ex1)
{
throw new Exception(ex1.ToString());
}
//获取cpu序列号
try
{
System.Management.ManagementObjectSearcher Wmi = new ManagementObjectSearcher("SELECT * FROM Win32_Processor");
string tmpUint32_1 = string.Empty;
foreach(ManagementObject WmiObj in Wmi.Get())
{
tmpUint32_1 =WmiObj["ProcessorId"].ToString();
}
this.textBox2.Text = tmpUint32_1;
this.gProgressBar1.Value ++;
}
catch(Exception ex2)
{
throw new Exception(ex2.ToString());
}
这样取的CPU ID会重复、或者空,磁盘序列号倒是唯一的,然则似乎是分区的GUID,格式化/重装会改变...看起来和网络流传的没有区别,为何要特意做个文档下载?
说的是动态加密?
我一直在琢磨银行的U盾好呢还是加密狗好呢?