如何从SQL Server中的C函数重新创建MD5 HASH



我正在使用旧的代码库和MD5函数(下面共享(,该函数正在返回一个我无法通过SQL Server重新创建的值,尽管使用了HASHBYTES,但Base64编码或其他策略。

我们的MD5 C#功能:

public string Md5(string value)
{
    CryptographyManager crypto = EnterpriseLibraryContainer.Current.GetInstance<CryptographyManager>();
    //byte[] valueToHash = (new UnicodeEncoding()).GetBytes(value);
    string generatedHash = crypto.CreateHash("MD5CryptoServiceProvider", value);
    // Clear the byte array memory.
    //Array.Clear(valueToHash, 0, valueToHash.Length);
    return generatedHash;
}

当我通过C#中的MD5函数运行"测试"一词时,它返回以下内容:

RTYSPVSIIGNYx5++zd8EfNwYAONmPWZnsKaYiQHBCP8=

这不是标准的base64编码,我无法找到一种在SQL中重新创建关联项目的方法。

请帮助我了解上面的MD5功能返回。

测试以下内容:希望能帮助到你MD5 Hash和Base64编码

public static string MD5(this string normal)
        {
            byte[] textBytes = System.Text.Encoding.UTF8.GetBytes(normal);
            try
            {
                System.Security.Cryptography.MD5CryptoServiceProvider cryptHandler;
                cryptHandler = new System.Security.Cryptography.MD5CryptoServiceProvider();
                byte[] hash = cryptHandler.ComputeHash(textBytes);
                string ret = "";
                foreach (byte a in hash)
                {
                    if (a < 16)
                        ret += "0" + a.ToString("x");
                    else
                        ret += a.ToString("x");
                }
                return ret;
            }
            catch
            {
                throw;
            }
        }

最新更新