在实现从C#代码到sql服务器的加密过程时,我需要您的帮助。
这是我在C#代码中得到的方法:
private static string GetPhpMD5(string strPlain)
{
ASCIIEncoding UE = new ASCIIEncoding();
byte[] HashValue, MessageBytes = UE.GetBytes(strPlain);
MD5 md5 = new MD5CryptoServiceProvider();
string strHex = "";
HashValue = md5.ComputeHash(MessageBytes);
foreach(byte b in HashValue)
{
strHex += String.Format("{0:x2}", b);
}
return strHex;
} /* GetPhpMD5 */
GetPhpMD5("nvhG#hdsdsqsd3H");
所以我想在sql server中做同样的事情。我尝试这样做,但没有给我相同的结果:
select Hashbytes('MD5', CONVERT(varchar(max),'nvhG#hdsdsqsd3H', 2) )
c#中的结果:f4ae6882a7e2aff90d58a29100c5bbf6
SQL Server中的结果:0xF4AE6882A7E2AFF90D58A29100C5BBF6
有人可以帮我吗?
非常感谢。
答案 0 :(得分:0)
只要找到看起来不错的方式:
select SUBSTRING(MASTER.dbo.Fn_varbintohexstr(Hashbytes('MD5', CONVERT(varchar(max),'nvhG#hdsdsqsd3H', 2) )), 3, 8000)
感谢您的帮助。