110,533
社区成员
发帖
与我相关
我的任务
分享
Response.Write("<p>");
//string machineID = HardwareHelper.GetMachineID();
string machineID = "D8-19-C7-8B-7D-32-CF-A9-7A-1F-B6-C2-A3-F7-DF-71";
Response.Write(machineID);
Response.Write("<p>start strValiStr 根据机器id生成validation<p>");
String srcStr = "tg9sIYKX8mPeYwDf0EcRVOhgzMM6eAoRPWlr2onylSaNQH6Le23+PfrMKhP3LYIMloVqiQtA9qNrv80Pu46wJycG7evqjNzBe1Qt1XlCs6TZFJnGyDeRThnwKWGrpyMW5lZY0VdxI+dYhqoDuROrTYke/NxxMlD87wweLQF23/A=";
//BitConverter.ToString(MD5.Create().ComputeHash(Encoding.Default.GetBytes(string.Format("{0}-{1}-{2}", "SMS", ConfigurationManager.AppSettings["CopyID"], machineID))));
String strValiStr = BitConverter.ToString(MD5.Create().ComputeHash(Encoding.Default.GetBytes(string.Format("{0}-{1}-{2}", "SMS","EE-500-3886ee9e-2125-afa8-21b9-f678b12e5d9f", machineID))));
Response.Write("validation: "+strValiStr);
Response.Write("<p>end strValiStr<p>");
string privateKey = "PFJTQUtleVZhbHVlPjxNb2R1bHVzPjdjdVB6K1Jta0FjWHlZSjBDbWJyZ3VUT3JSajVsakRJbXJxUTZLeUtMZ2ZMTWNzcSt6cWFnMnF3NUlDZWNYalB5NGhsOU5vdHFyYTdxQVc3WmVtVkJuMHZ0NFVrYzdlTFhreEN0TGhsVUtSNHpCc3FEUW5QNnppKzFXejBockorV2RUM2MwSTgyK25SOWRHY2hIMnEwTCthL2IwK01jRjBkbnVHUmRReFl1MD08L01vZHVsdXM+PEV4cG9uZW50PkFRQUI8L0V4cG9uZW50PjxQPis5cHQ3RWk3K1dhTXF0ZDN6aExBYWJuQjBkdGxjWkdOVGlqakRYUVgwYXdWazk2RmZYL3FwbW1ZdmRVOE1obDRWTXZUZTI0QkY2aGc0Nk1wZzF6TUVRPT08L1A+PFE+OGJYZ2g4N1pObDJEUnFjdWlvT1U4N3lZamo4RjZZeUliaGg0S08xanJDdmpSV1VzYXpQaEdWaDh4R3FHN3pheE9zdmFSelI1dnFvcENWb1lGMEwxSFE9PTwvUT48RFA+QTE3SDY4cUpZV3dDNCtKZ1F3eXpNSGNBNWZzR24zOXdJYVNnYlRTcGdPL0psaUg3TFZQQjR4bzBwZzJ0Y1lvdnR3ckhPTGFmSXg3b3RRTWc4aFlTMFE9PTwvRFA+PERRPmJZalJWbG43ZnpLRFlnb3pBaHc4N1BOall0cldrQTdhYUtINEdmdng5anp4UWlwbUpiS2Q2SUY4RVBxQmFYZ3Nlb3VVd0QzY2lmWE1vT3RPRFlTUFZRPT08L0RRPjxJbnZlcnNlUT5uRU1HWEl0cVA0UmFlczZtTURCcmRBQzdNS2k1UmRGTjF4bUM1MWNwWmRFZkhHeTVNd05JS0hRQjhSZ0VhdStlNThyQVduRy9sQnk0MG00YlN3SmZyQT09PC9JbnZlcnNlUT48RD5pTTFPTy9TVFNKSzhEWksrUFdtK1hieFNabVR5MllQUk5LcldTUFZTUFc4QVovSVJGUjArM1JIWkdHd2lPdmVjMitQcGUvYTB4UHlCY3dWeExRMDNUTHR2b3h0TEF3NnNDNWpPSjlMWW1kamRRQjYwdkhockdIMlpGbUVsTVJJbUVhOWNWNFN5QkptZUxwYVpyeWY1Z3l0dERHc0pnQzgvZ2Y3eU5uc0VIRUU9PC9EPjwvUlNBS2V5VmFsdWU+";
string s1 = BitConverter.ToString(AlgHelper.Decrypt(privateKey, Convert.FromBase64String(srcStr)));
Response.Write("生成的结果: "+s1);
//strValiStr 和 s1 是相等的
Response.Write("<p>s2<p>");
String[] aaa = strValiStr.Split('-');
byte[] a1 = new byte[aaa.Length];
for (int i = 0; i < aaa.Length;i++ )
{
a1[i] = (byte)Convert.ToByte(aaa[i],16);
}
byte[] a2 = AlgHelper.Encrypt(privateKey, a1);
String s2 = Convert.ToBase64String(a2);
Response.Write("反推的结果:"+s2); //为何反推后 s2 不等于 srcStr ?? -----问题在这里
Response.Write("<p>");
反推回来的结果 不等于 srcStr 啊.
另附上加密代码,
public static byte[] Decrypt(string privateKey, byte[] data)
{
RSACryptoServiceProvider.UseMachineKeyStore = false;
using (RSACryptoServiceProvider provider = new RSACryptoServiceProvider())
{
provider.FromXmlString(Encoding.Default.GetString(Convert.FromBase64String(privateKey)));
return provider.Decrypt(data, false);
}
}
public static byte[] Encrypt(string publicKey, byte[] data)
{
RSACryptoServiceProvider.UseMachineKeyStore = false;
using (RSACryptoServiceProvider provider = new RSACryptoServiceProvider())
{
provider.FromXmlString(Encoding.Default.GetString(Convert.FromBase64String(publicKey)));
return provider.Encrypt(data, false);
}
}
var s = "01-02-03-04-ab-CD-0a-0A";
var r = s.Split('-').Select(x => (byte)Convert.ToInt16(x, 16)).ToArray();
Console.WriteLine(string.Join(",", r));
Console.ReadKey();
string s = "01-02-03-04-ab-CD-0a-0A";
string[] ar = s.Split('-');
byte[] r = new byte[ar.Length];
for (int i = 0; i < ar.Length; i++)
{
r[i] = (byte)Convert.ToInt16(ar[i], 16);
}
Console.WriteLine(string.Join(",", r));
s1.Split('-').Select(x => (byte)Convert.ToInt16(x, 16)).ToArray()