什么数据可以存储在SQL Server的varbinary数据类型中?

前端之家收集整理的这篇文章主要介绍了什么数据可以存储在SQL Server的varbinary数据类型中?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个表,其中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哈希:@H_301_9@

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

存储单向散列而不是真正的密码更安全.您可以检查密码是否匹配:@H_301_9@

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

但是没有办法通过查看表来检索密码.所以只有最终用户知道他的密码,甚至DBA也不能检索它.@H_301_9@

猜你在找的MsSQL相关文章