使用SQL从Integer创建哈希

时间:2016-03-30 21:40:43

标签: sql sql-server hash md5 md5sum

我正在尝试使用SQL从整数创建哈希。这样做的目的是创建一个函数,在该函数中,我将知道所接收的数据是否未被运行脚本的人员篡改。我想我会MD5-hash整数然而我遇到一些问题,MD5哈希不准确。

这是我的测试代码,我尝试将20转换为MD5

SELECT CONVERT(NVARCHAR(32),HashBytes('MD5', STR(20)),2) as 'MD5'

返回F63258CAB6D44ED830605298043CBEA4

SELECT CONVERT(NVARCHAR(32),HashBytes('MD5', '20'),2) as 'MD5'

返回98F13708210194C475687BE6106A3B84

的预期结果

我的转换错误是什么?

此外,我不必使用MD5。我愿意接受使用不同方法的建议,即使他们看到代码,我很容易解密,但普通用户很难进行逆向工程。

1 个答案:

答案 0 :(得分:3)

当您检查STR(20)的结果时,您会注意到一些前导空格。

请尝试LTRIM(20)cast(20 as varchar(12))