如何创建持久的唯一MD5哈希

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)

Cli*_*int 5

为您的应用程序创建唯一的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)