/// <summary> /// 读取加密狗信息 /// </summary> public SoftDogInfo ReadDog() { SoftDogInfo info = null; CheckDog(); info = new SoftDogInfo(); info.DogDevice = true; //项目编号 info.ProjectNo = ReadInteger(61, 4); //适用的软件列表 info.SoftwareList = (SoftwareType)ReadInteger(31, 4); //有效期 string d = MydsEncrypt.Encrypt(ReadString(17, 6)); info.StartDate = DateTime.Parse("20" + d.Substring(0, 2) + "-" + d.Substring(2, 2) + "-" + d.Substring(4, 2)); d = MydsEncrypt.Encrypt(ReadString(5, 6)); info.ExpiredDate = DateTime.Parse("20" + d.Substring(0, 2) + "-" + d.Substring(2, 2) + "-" + d.Substring(4, 2)); //是否是主机加密狗 info.IsHost = ReadInteger(37, 1) == 1; string temp = ReadString(40, 10).Trim(); if (!string.IsNullOrEmpty(temp)) { info.DBUser = MydsEncrypt.Encrypt(temp); } temp = ReadString(50, 10).Trim(); if (!string.IsNullOrEmpty(temp)) { info.DBPassword = MydsEncrypt.Encrypt(temp); } info.Data = HexStringConverter.HexToString(ReadData(0, 100), string.Empty); return(info); }
public static SoftDogInfo ReadDog(string file) { try { using (FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read)) { byte[] data = new byte[fs.Length]; if (fs.Read(data, 0, data.Length) == data.Length) { string sb = new DTEncrypt().DSEncrypt(System.Text.ASCIIEncoding.ASCII.GetString(data)); string[] temp = sb.Split(';'); var dic = new Dictionary <string, string>(); foreach (var str in temp) { string[] kp = str.Split(':'); if (kp.Length == 2) { dic.Add(kp[0], kp[1]); } } SoftDogInfo dog = new SoftDogInfo(); if (dic.ContainsKey("ProjectNo")) { dog.ProjectNo = int.Parse(dic["ProjectNo"]); } if (dic.ContainsKey("ProjectName")) { try { var pn = dic["ProjectName"]; if (!string.IsNullOrEmpty(pn)) { var pnData = Convert.FromBase64String(pn); if (pnData != null && pnData.Length > 0) { dog.ProjectName = System.Text.ASCIIEncoding.Default.GetString(pnData); } } } catch { } } if (dic.ContainsKey("SoftwareList")) { dog.SoftwareList = (SoftwareType)(int.Parse(dic["SoftwareList"])); } if (dic.ContainsKey("StartDate")) { dog.StartDate = DateTime.Parse(dic["StartDate"]); } if (dic.ContainsKey("ExpiredDate")) { dog.ExpiredDate = DateTime.Parse(dic["ExpiredDate"]); } if (dic.ContainsKey("IsHost")) { dog.IsHost = bool.Parse(dic["IsHost"]); } if (dic.ContainsKey("DBServer")) { dog.DBServer = dic["DBServer"].Trim(); } if (dic.ContainsKey("DBName")) { dog.DBName = dic["DBName"].Trim(); } if (dic.ContainsKey("DBUser")) { dog.DBUser = dic["DBUser"].Trim(); } if (dic.ContainsKey("DBPassword")) { dog.DBPassword = dic["DBPassword"].Trim(); } if (dic.ContainsKey("MAC")) { dog.MAC = dic["MAC"].Trim(); } return(dog); } } } catch { } return(null); }