有人可以向我解释为什么不使用T-SQL
SELECT substring(master.dbo.fn_varbintohexstr(hashbytes('MD5', 'HelloWorld')), 3, 32)
和.NET的
Convert.ToBase64String(New System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(System.Text.Encoding.UTF8.GetBytes("HelloWorld")))
返回相同的结果?
Tsql返回68e109f0f40ca72a15e05cc22786f8e6
而.net返回aOEJ8PQMpyoV4FzCJ4b45g==
答案 0 :(得分:3)
.net one是base64,T-SQL是hex。它们是不同的编码。
输出的长度也告诉你,因为MD5提供了16个字节(根据T-SQL解决方案)
答案 1 :(得分:0)
因为你要求T-SQL返回HEX编码的字节,而你告诉.NET返回它们的Base64编码...这是非常不同的编码,永远不会匹配......