【发布时间】:2021-06-17 18:29:39
【问题描述】:
想知道为我的 SQL Server 选择哪种数据类型来存储 sha512 密码哈希。 (散列值总是有固定的长度)
declare @hashedPasswd varchar(max)
set @hashedPasswd = convert(varchar(max), HASHBYTES('SHA2_512', 'any password with any langth'), 1)
select len (@hashedPasswd)
总是返回 130 的长度。
列的数据类型的最佳选择是什么? 变体是 nvarchar(max)、nvarchar(130)、varchar、char。 如果我理解正确,在我的情况下 nvarchar 是浪费空间,因为它只是散列值中的 ASCII 符号。
请帮忙。
【问题讨论】:
-
你为什么要使用
varchar?HASHBYTES返回一个varbinary,长度最大为 8000。 -
sha_512 是散列算法。据我了解,散列值将始终为 130 个符号
标签: sql-server tsql password-hash