求代码分析,请帮忙分析一下这3段代码的意思,谢谢
第一次接触.net,看不懂者段代码的意思,请各位大神解读一下:if (this.tboZCH.Text.Trim().Length == 0x11)
{
char[] chArray = this.tboZCH.Text.Trim().ToUpper().ToCharArray();
string pID = this.GetPID(this.txtUser.Text.Trim(), Conversions.ToString(chArray[7]));
if ((Conversions.ToString(chArray[2]) + Conversions.ToString(chArray[3]) + Conversions.ToString(chArray[4]) + Conversions.ToString(chArray[8]) + Conversions.ToString(chArray[9]) + Conversions.ToString(chArray[10]) + Conversions.ToString(chArray[12]) + Conversions.ToString(chArray[13]) + Conversions.ToString(chArray[14])) == pID)
{
MySettingsProperty.Settings.PID = this.tboZCH.Text.Trim().ToUpper();
MySettingsProperty.Settings.UserName = this.txtUser.Text.Trim();
MySettingsProperty.Settings.Save();
Interaction.MsgBox("恭喜,已经完成!", MsgBoxStyle.Information, "操作提示");
this.Close();
GlobalMOD.OPTVer = Conversions.ToString(chArray[7]);
GlobalMOD.XZCode = Convert.ToInt32(Conversions.ToString(chArray[0]) + Conversions.ToString(chArray[1]) + Conversions.ToString(chArray[6]) + Conversions.ToString(chArray[15]) + Conversions.ToString(chArray[0x10]), 0x10).ToString();
while (Conversions.ToString(GlobalMOD.XZCode[GlobalMOD.XZCode.Length - 1]) == "0")
{
GlobalMOD.XZCode = GlobalMOD.XZCode.Substring(0, GlobalMOD.XZCode.Length - 1);
}
return;
}
}
--------------------------------
private string GetMACCode()
{
string str;
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Processor");
string str3 = "";
foreach (ManagementObject obj2 in searcher.Get())
{
str3 = Conversions.ToString(obj2["ProcessorId"]);
}
long num = Math.Abs(str3.GetHashCode());
searcher = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard");
string left = "";
foreach (ManagementObject obj3 in searcher.Get())
{
left = Conversions.ToString(obj3["Manufacturer"]);
left = Conversions.ToString(Operators.ConcatenateObject(left, obj3["Product"]));
left = Conversions.ToString(Operators.ConcatenateObject(left, obj3["SerialNumber"]));
}
long num2 = Math.Abs(left.GetHashCode());
str = Math.Abs((long) (num + num2)).ToString();
}
catch (Exception exception1)
{
ProjectData.SetProjectError(exception1);
Exception exception = exception1;
str = "3236191212";
ProjectData.ClearProjectError();
return str;
ProjectData.ClearProjectError();
}
return str;
}
---------------------------
private string GetPID(string UserName, string BB)
{
ulong num;
int num6;
long num2 = Math.Abs(UserName.GetHashCode());
string str = Math.Abs((long) (Conversions.ToLong(this.GetMACCode()) - num2)).ToString();
if (BB == "F")
{
num = (ulong) (Conversions.ToLong(str) * 0x1e1863L);
}
else
{
num = (ulong) (Conversions.ToLong(str) * 0x4c96aL);
}
string str3 = "";
int num4 = 0;
do
{
int charCode = (int) (((long) num) & 0x1fL);
if (charCode < 14)
{
charCode += 0x41;
}
else if (charCode >= 0x18)
{
charCode = (charCode - 0x18) + 50;
}
else
{
charCode = (charCode - 14) + 80;
}
if (charCode == 0x49)
{
charCode = 0x38;
}
str3 = str3 + Conversions.ToString(Strings.Chr(charCode));
num = num >> 5;
num4++;
num6 = 8;
}
while (num4 <= num6);
return str3;
}
--------------------编程问答-------------------- 根据Mac地址、用户名生成产品序列号或者密钥一类的东西。并且验证。 --------------------编程问答-------------------- MAC部分是怎么获取来计算的啊,最后那部分的计算好复杂,师傅可否具体指点一二?
补充:.NET技术 , VB.NET