使用 SQL 从整数创建哈希

Create Hash from Integer using SQL

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

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

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

returns F63258CAB6D44ED830605298043CBEA4

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

returns 98F13708210194C475687BE6106A3B84

的预期结果

我的转换有什么问题?

另外我也不必使用MD5。我愿意接受使用不同方法的建议,在这种方法中,我可以轻松解密,但普通用户即使看到代码也很难进行逆向工程。

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

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