public static bool CheckAuthorization(string authorizationFilePath, byte[] publicKey, ref string expiresDate) { if (!string.IsNullOrEmpty(authorizationFilePath)) { string authString = System.IO.File.ReadAllText(authorizationFilePath); JObject authJsonObj = Newtonsoft.Json.JsonConvert.DeserializeObject(authString) as JObject; var signature = authJsonObj["signature"].ToString(); var data = authJsonObj["data"].ToString(); var isSignatureOkay = RSACommon.VerifyMessage(publicKey, signature, data); if (isSignatureOkay) { var json = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(data)); JObject registerObj = Newtonsoft.Json.JsonConvert.DeserializeObject(json) as JObject; if ((bool)registerObj["IsRegister"]) { //检查当前电脑硬件信息,匹配成功才合法 var computer = MyComputerInfo.Instance(); if (registerObj["CpuID"].ToString() == computer.CpuID && computer.IsExistMacAddress(registerObj["MacAddress"].ToString()) && registerObj["DiskID"].ToString() == computer.DiskID ) { expiresDate = registerObj["ExpirationDate"].ToString(); return(true); } } } } return(false); }
public static MyComputerInfo Instance() { if (_instance == null) { _instance = new MyComputerInfo(); } return(_instance); }