为什么SQL Server 2008 MD5显示外来字符?

时间:2011-01-03 16:27:39

标签: sql sql-server sql-server-2008 md5

select cast(hashbytes('md5', 'test') as varchar)

显示器

載쵫ⅆ珓�荎✦

但在C#中,

System.Security.Cryptography.MD5.ComputeHash('test');

显示器

c8059e2ec7419f590e79d7f1b774bfe6

看起来是正确的。这是SQL Server编码的问题吗?

2 个答案:

答案 0 :(得分:2)

hashbytes获取原始MD5,而C#返回base-16编码版本。 (事实上​​,ComputeHash做了同样的事情 - 你必须做某种形式的转换才能将它转换成16字符串,不是吗?:))

答案 1 :(得分:-1)

我在这里找到了答案:

Convert HashBytes to VarChar