110,476
社区成员
发帖
与我相关
我的任务
分享
MD5(Encoding.UTF8.GetBytes(pass + "........." + pass.Reverse()))
这种代码,最后边的函数返回的是 .net 的类型描述,结果我们测试的4台机器竟然是各个机器 .net 返回的这个 Reverse().ToString 各不相同。也巧了,假设有两台机器返回的一样,就不至于误解了。
这个代码改成了MD5(Encoding.UTF8.GetBytes(pass + "........" + string.Join("", pass.Reverse())))
MD5CryptoServiceProvider md5Hasher1 = new MD5CryptoServiceProvider();
byte[] data1 = md5Hasher1.ComputeHash(Encoding.UTF8.GetBytes("123456afafliolasdfa"));
我们在三台不同架构类型CPU的机器上,有完全三个结果。我也希望是看错了,可是这真是不一样啊?!static void Main(string[] args)
{
//结果:c1ba5951c95dd17dcbcbdd451a999978
//Func1
MD5 md5Hasher = MD5.Create();
byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes("myTest+123"));
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
Console.WriteLine(sBuilder);
//Func2
MD5CryptoServiceProvider md5Hasher1 = new MD5CryptoServiceProvider();
byte[] data1 = md5Hasher1.ComputeHash(Encoding.Default.GetBytes("myTest+123"));
StringBuilder sBuilder1 = new StringBuilder();
for (int i = 0; i < data1.Length; i++)
{
sBuilder1.Append(data[i].ToString("x2"));
}
Console.WriteLine(sBuilder1);
//Func3
string str1 = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile("myTest+123", "MD5").ToUpper();
Console.WriteLine(str1);
Console.ReadLine();
}