首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将HashBytes转换为VarChar

将HashBytes转换为VarChar
EN

Stack Overflow用户
提问于 2008-08-05 11:49:11
回答 7查看 146.9K关注 0票数 136

我想在SQL Server2005中获取字符串值的MD5哈希。我使用以下命令来完成此操作:

代码语言:javascript
复制
SELECT HashBytes('MD5', 'HelloWorld')

但是,这将返回一个VarBinary而不是VarChar值。如果我尝试将0x68E109F0F40CA72A15E05CC22786F8E6转换为VarChar,我得到的是há ðô§*à\Â'†øæ而不是68E109F0F40CA72A15E05CC22786F8E6

有没有基于SQL的解决方案?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2008-08-05 14:26:42

我在其他地方找到了解决方案:

代码语言:javascript
复制
SELECT SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', 'HelloWorld')), 3, 32)
票数 156
EN

Stack Overflow用户

发布于 2011-01-03 22:26:45

代码语言:javascript
复制
SELECT CONVERT(NVARCHAR(32),HashBytes('MD5', 'Hello World'),2)
票数 94
EN

Stack Overflow用户

发布于 2011-03-18 00:00:18

使用master.dbo.fn_varbintohexsubstring(0, HashBytes('SHA1', @input), 1, 0)代替master.dbo.fn_varbintohexstr,然后对结果执行substringing

实际上,fn_varbintohexstr在内部调用fn_varbintohexsubstringfn_varbintohexsubstring的第一个参数告诉它是否添加0xF作为前缀。fn_varbintohexstr调用fn_varbintohexsubstring,并将1作为第一个参数internaly。

因为您不需要0xF,所以直接调用fn_varbintohexsubstring

票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档