public static string Read(string filename) { byte[] buffer; if (isCheckZk) { return(""); } int num = 128; byte[] buffer3 = new byte[128]; try { FileStream stream = new FileStream(filename, (FileMode)3, (FileAccess)1, (FileShare)1); buffer = new byte[stream.Length - num]; stream.Read(buffer3, 0, num); stream.Read(buffer, 0, (int)(stream.Length - num)); stream.Close(); } catch (Exception exception) { return(exception.Message); } string[] strArray = Encoding.GetEncoding("GB2312").GetString(buffer).Split(new char[] { ',' }); if (strArray.Length == 7) { string str2 = strArray[2]; DateTime time = DateTime.ParseExact(str2, "yyyy-MM-dd", null); string str3 = strArray[3]; DateTime time2 = DateTime.ParseExact(str3, "yyyy-MM-dd", null); DateTime time3 = DateTime.Now; if ((time3 >= time) && (time3 <= time2)) { RSAHandler handler = new RSAHandler(); RSAPKCS1SignatureDeformatter deformatter = handler.CreateRSADeformatter("<root><Modulus>uOTMyuLJ8IzCD+i+1K7ho5Dqssit6X94Kei58/xs/MEgvCLn0EUUJmNC6pIm+S8166aU201TQ7IW45xl4pCUVqGCtItgXVq20T8kCtO7UzeTwT4ibBHhDBbhZrhZO+zYwfiA7UfKIhf96bO8BDqg45MyQQYpTVTZfifgSgJU7uk=</Modulus><Exponent>AQAB</Exponent></root>"); byte[] hashData = handler.GetHashData(buffer); if (!deformatter.VerifySignature(hashData, buffer3)) { return("授权文件" + filename + "不正确!"); } sOrgName = Escape.unescape(strArray[0]); sItemName = Escape.unescape(strArray[1]); sWWW = strArray[5]; sIP = strArray[6]; dStartDate = time; dEndDate = time2; isCheckZk = true; return(""); } return("授权文件" + filename + "已过期!"); } return("授权文件" + filename + "非法!"); }
public static void GenFile(string filename, string data) { string str = data; data = str + "," + smethod_0() + "," + smethod_2() + "," + smethod_1(); RSAHandler handler = new RSAHandler(); RSAPKCS1SignatureFormatter formatter = handler.CreateRSAFormatter(@"c:\privatekey.xml"); byte[] bytes = Encoding.GetEncoding("GB2312").GetBytes(data); byte[] hashData = handler.GetHashData(bytes); byte[] buffer3 = formatter.CreateSignature(hashData); FileStream stream = new FileStream(filename, (FileMode)2); if (stream.CanWrite) { stream.Write(buffer3, 0, buffer3.Length); stream.Write(bytes, 0, bytes.Length); } stream.Close(); }
public static string ReadFile(string filename) { if (!isCheck) { byte[] buffer; if (sVersionNo == "") { return(""); } sVersionNo = ""; int num = 128; byte[] buffer3 = new byte[128]; try { FileStream stream = new FileStream(filename, (FileMode)3, (FileAccess)1, (FileShare)1); buffer = new byte[stream.Length - num]; stream.Read(buffer3, 0, num); stream.Read(buffer, 0, (int)(stream.Length - num)); stream.Close(); } catch (Exception exception) { return(exception.Message); } string[] strArray = Encoding.GetEncoding("GB2312").GetString(buffer).Split(new char[] { ',' }); if (strArray.Length != 8) { return("授权文件" + filename + "非法!"); } string_0 = strArray[4]; if ((string_0 != "调试用标准版") && (string_0 != "调试用企业版")) { RSAHandler handler = new RSAHandler(); RSAPKCS1SignatureDeformatter deformatter = handler.CreateRSADeformatter("<root><Modulus>uOTMyuLJ8IzCD+i+1K7ho5Dqssit6X94Kei58/xs/MEgvCLn0EUUJmNC6pIm+S8166aU201TQ7IW45xl4pCUVqGCtItgXVq20T8kCtO7UzeTwT4ibBHhDBbhZrhZO+zYwfiA7UfKIhf96bO8BDqg45MyQQYpTVTZfifgSgJU7uk=</Modulus><Exponent>AQAB</Exponent></root>"); byte[] hashData = handler.GetHashData(buffer); if (!deformatter.VerifySignature(hashData, buffer3)) { return("授权文件" + filename + "不正确!"); } if ((string_0 != "买断版") && (((strArray[5] != smethod_0()) || (strArray[6] != smethod_2())) || (strArray[7] != smethod_1()))) { return("授权文件" + filename + "和当前机器的硬件配置不符!"); } isCheck = true; } sCustomerName = strArray[0]; sTel = strArray[1]; sWWW = strArray[2]; sProjectName = strArray[3]; if (string_0 == "标准版") { sVersionNo = "1"; } if (string_0 == "企业版") { sVersionNo = "2"; } if (string_0 == "买断版") { sVersionNo = "3"; } if (string_0 == "调试用标准版") { sVersionNo = "4"; } if (string_0 == "调试用企业版") { sVersionNo = "5"; } } return(""); }