gpt4 book ai didi

sql - SQL Server的varbinary数据类型可以存储哪些数据?

转载 作者:行者123 更新时间:2023-12-04 10:27:13 25 4
gpt4 key购买 nike

我有一个表,其中userpassword字段具有varbinary数据类型,所以我很困惑应该以哪种形式将数据保存到userpassword字段中,因为当我保存varchar数据时,它给了我错误。

最佳答案

varbinary列可以存储任何内容。要在其中存储字符串,必须将其强制转换为varbinary

declare @t table (id int identity, pwd varbinary(50))
insert into @t (pwd) values (cast('secret' as varbinary(50)))


但是对于密码, varbinary列通常存储某种哈希。例如,使用 HashBytes function的SHA1哈希:

insert into @t (pwd) values (HashBytes('sha1', 'secret'));


存储单向哈希而不是真实密码更加安全。您可以检查密码是否匹配:

select * from @t where pwd = HashBytes('sha1', 'secret')


但是您无法通过查看表格来检索密码。因此,只有最终用户知道他的密码,甚至DBA都无法检索它。

关于sql - SQL Server的varbinary数据类型可以存储哪些数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3275548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com