SQL中的PHPMD5加密

时间:2018-07-13 20:37:48

标签: c# sql-server encryption

在实现从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

有人可以帮我吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

只要找到看起来不错的方式:

select SUBSTRING(MASTER.dbo.Fn_varbintohexstr(Hashbytes('MD5', CONVERT(varchar(max),'nvhG#hdsdsqsd3H', 2) )), 3, 8000)

感谢您的帮助。