将 HASBYTES 函数输出转换为 CHAR

Convert HASBYTES function output to CHAR

我知道存储 HASHBYTES 函数输出的最佳数据类型是 BINARY/VARBINARY,但我们希望按照 DataVault 最佳实践的建议将其存储为 CHAR ,此外,并非所有通行费都支持 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ƒ&'´ö

--convert binary to char without 0x prefix, using style 2
SELECT CONVERT(CHAR(32), HASHBYTES('MD5', 'test'), 2);