0

我知道存储HASHBYTES函数输出的最佳数据类型是BINARY/VARBINARY,但我们希望按照CHARDataVault 最佳实践的建议存储它,而且并非所有收费都支持BINARY类型的键,例如 PowerBI。

所以问题是,如何将其转换为CHAR? 当我做简单时,CAST/CONVERT我得到不同的输出而不是HASHBYTES函数的原始输出。

SELECT  CONVERT(CHAR(32), HASHBYTES('MD5', 'test'))
SELECT  CAST(HASHBYTES('MD5', 'test') AS CHAR(32))
SELECT HASHBYTES('MD5', 'test')

预期值为098F6BCD4621D373CADE4E832627B4F6(不带0x),实际值为 kÍF!ÓsÊÞNƒ&'´ö

4

1 回答 1

1
--convert binary to char without 0x prefix, using style 2
SELECT CONVERT(CHAR(32), HASHBYTES('MD5', 'test'), 2);
于 2020-07-29T11:13:18.403 回答