我正在使用旧的代码库和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;
}
}