首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据固定字符串和列值的组合选择MD5哈希

根据固定字符串和列值的组合选择MD5哈希
EN

Stack Overflow用户
提问于 2015-02-25 17:08:18
回答 1查看 346关注 0票数 0

例如,我有一个只有一列的表:

代码语言:javascript
复制
Col1 NVARCHAR(50)

它只有一行,Col1的值是:b

我想要创建一个select语句,该语句使用该值来创建一个MD5哈希,但是该值需要附加到两个固定字符串的格式中:

代码语言:javascript
复制
'a' + Col1 + 'c'

因此,实际上,我正在尝试为'abc'创建一个'abc',这应该会导致:

900150983CD24FB0D6963F7D28E17F72

要创建MD5哈希,我将使用HashBytes函数。但是,当我用列值连接固定字符串时,它不会产生预期的输出。例如:

代码语言:javascript
复制
CONVERT(VARCHAR(32), HashBytes('MD5', 'a' + Col1 + 'c'), 2)

在以下方面的成果:

CE1473CF80C6B3FDA8E3DFC006ADC315

这是错误的。但是,以下所有内容都会产生正确的输出:

代码语言:javascript
复制
CONVERT(VARCHAR(32), HashBytes('MD5', 'abc'), 2)
CONVERT(VARCHAR(32), HashBytes('MD5', 'a' + 'b' + 'c')

显然,这与使用字段值有关,但我不知道它是什么(可能是某种编码,或者是nvarchar?)。

如何确保生成正确的MD5值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-25 17:11:48

列是NVARCHAR,但其他值都是VARCHAR

您可以强制您的列到VARCHAR

代码语言:javascript
复制
CONVERT(VARCHAR(32), HashBytes('MD5', 'a' + CAST(Col1 AS VARCHAR(50)) + 'c'), 2)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28725233

复制
相关文章

相似问题

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