cs0*_*815 1 sql t-sql sql-server
我想创建一个像这样的唯一哈希:
SELECT
CAST(HASHBYTES('SHA1',
LTRIM(RTRIM(ISNULL('9',''))) +
LTRIM(RTRIM(isnull('X',''))) +
LTRIM(RTRIM(isnull('',''))) +
LTRIM(RTRIM(isnull('Y',''))) +
LTRIM(RTRIM(isnull('','')))) AS VARBINARY(20))
SELECT
CAST(HASHBYTES('SHA1',
LTRIM(RTRIM(isnull('9',''))) +
LTRIM(RTRIM(isnull('X',''))) +
LTRIM(RTRIM(isnull('Y',''))) +
LTRIM(RTRIM(isnull('',''))) +
LTRIM(RTRIM(isnull('','')))) AS VARBINARY(20))
Run Code Online (Sandbox Code Playgroud)
不幸的是,尽管有不同的字符串,我最终得到相同的哈希.有什么想法吗?
PS:
这解决了上述"问题":
SELECT LTRIM(RTRIM(ISNULL('9', '-'))) + N',' + LTRIM(RTRIM(ISNULL('X', '-')))
+ N',' + LTRIM(RTRIM(ISNULL('', '-'))) + N',' + LTRIM(RTRIM(ISNULL('Y',
'-'))) + N','
+ LTRIM(RTRIM(ISNULL('', '-'))) ,
CAST(HASHBYTES('SHA1',
LTRIM(RTRIM(ISNULL('9', '-'))) + N','
+ LTRIM(RTRIM(ISNULL('X', '-'))) + N','
+ LTRIM(RTRIM(ISNULL('', '-'))) + N','
+ LTRIM(RTRIM(ISNULL('Y', '-'))) + N','
+ LTRIM(RTRIM(ISNULL('', '-')))) AS VARBINARY(20))
SELECT LTRIM(RTRIM(ISNULL('9', '-'))) + N',' + LTRIM(RTRIM(ISNULL('X', '-')))
+ N',' + LTRIM(RTRIM(ISNULL('Y', '-'))) + N',' + LTRIM(RTRIM(ISNULL('',
'-'))) + N','
+ LTRIM(RTRIM(ISNULL('', '-'))) ,
CAST(HASHBYTES('SHA1',
LTRIM(RTRIM(ISNULL('9', '-'))) + N','
+ LTRIM(RTRIM(ISNULL('X', '-'))) + N','
+ LTRIM(RTRIM(ISNULL('Y', '-'))) + N','
+ LTRIM(RTRIM(ISNULL('', '-'))) + N','
+ LTRIM(RTRIM(ISNULL('', '-')))) AS VARBINARY(20))
Run Code Online (Sandbox Code Playgroud)
因为没有不同的标志:
LTRIM(RTRIM(ISNULL('9',''))) +
LTRIM(RTRIM(isnull('X',''))) +
LTRIM(RTRIM(isnull('',''))) +
LTRIM(RTRIM(isnull('Y',''))) +
LTRIM(RTRIM(isnull('',''))))
-- is the same of
LTRIM(RTRIM(isnull('9',''))) +
LTRIM(RTRIM(isnull('X',''))) +
LTRIM(RTRIM(isnull('Y',''))) +
LTRIM(RTRIM(isnull('',''))) +
LTRIM(RTRIM(isnull('',''))))
-- that is the same of
'9XY'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39 次 |
| 最近记录: |