为什么 SQL Server 2008 MD5 显示外文字符?
select cast(hashbytes('md5', 'test') as varchar)
显示,
載쵫ⅆ珓�荎✦
但在 C# 中,
System.Security.Cryptography.MD5.ComputeHash('test');
显示
c8059e2ec7419f590e79d7f1b774bfe6
看起来是正确的。这是SQL Server编码的问题吗?
select cast(hashbytes('md5', 'test') as varchar)
displays
載쵫ⅆ珓�荎✦
but in C#,
System.Security.Cryptography.MD5.ComputeHash('test');
displays
c8059e2ec7419f590e79d7f1b774bfe6
which looks to be correct. Is this a problem with SQL Server's encoding?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
hashbytes
获取原始 MD5,而 C# 返回 base-16 编码版本。 (事实上,ComputeHash 做了同样的事情——你必须进行某种形式的转换才能将其转换为 16 进制字符串,不是吗?:))hashbytes
is getting the raw MD5, while C# is returning the base-16 encoded version. (In fact, ComputeHash does the same thing -- you had to do some form of conversion to get it into that base 16 string, didn't you? :) )