Mon*_*RPG 1 c# hash md5 unique
我想如果我使用默认的MD5函数,那将为不同应用程序的相同字符串创建相同的哈希值
所以我想以某种方式定义一个预静态值,将它赋予MD5函数,并将这些生成的结果赋予我的应用程序的唯一性.
此静态值永远不会在我的应用程序中发生变化,因此它将始终为我的应用程序中的相同字符串生成相同的哈希值
但是如果另一个应用程序使用默认的MD5,它们将不会获得相同的MD5哈希值
我怎么能用c#5做到这一点?asp.net
我有以下功能
public static string ConvertStringtoMD5(string strword)
{
MD5 md5 = MD5.Create();
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(strword);
byte[] hash = md5.ComputeHash(inputBytes);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
sb.Append(hash[i].ToString("x2"));
}
return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)
为您的应用程序创建唯一的GUID,将其添加到您想要散列的数据(在散列之前),然后执行散列.
它仍然是MD5哈希值,它对您的应用程序来说是独一无二的.
如果您将来需要验证哈希值,请确保添加与以前相同的GUID.
private const string _myGUID = "{C05ACA39-C810-4DD1-B138-41603713DD8A}";
public static string ConvertStringtoMD5(string strword)
{
MD5 md5 = MD5.Create();
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(_myGUID + strword);
byte[] hash = md5.ComputeHash(inputBytes);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
sb.Append(hash[i].ToString("x2"));
}
return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)