Sql 存储密码哈希-varchar vs varbinary

Sql 存储密码哈希-varchar vs varbinary,sql,passwords,Sql,Passwords,在将密码散列存储为varchar或varbinary时是否有真正的区别(这意味着它是否有任何附加的[security]值来这样或那样做?不太一样 将其存储为varbinary将允许您使用当前代码页之外的字符。通过在varchar上使用nvarchar可以避免这种情况 将其存储为varbinary也将使数据以十六进制格式显示,但这实际上并不是任何严格的保护级别 将其存储在varbinary中的一个很好的理由是,它实际上是二进制数据,而不是字符数据——但这与保护数据本身无关 您的安全性将通过使用适当

在将密码散列存储为varchar或varbinary时是否有真正的区别(这意味着它是否有任何附加的[security]值来这样或那样做?

不太一样

将其存储为
varbinary
将允许您使用当前代码页之外的字符。通过在
varchar
上使用
nvarchar
可以避免这种情况

将其存储为
varbinary
也将使数据以十六进制格式显示,但这实际上并不是任何严格的保护级别

将其存储在
varbinary
中的一个很好的理由是,它实际上是二进制数据,而不是字符数据——但这与保护数据本身无关


您的安全性将通过使用适当的哈希算法和适当保护对相关数据库/表的访问来实现,包括确保具有适当访问级别的应用程序参数化其查询。

我想我对密码安全性了解得足够多,但是我总是使用nvarchar来存储散列,最近我做了一些研究,似乎很多帖子都使用varbinary,所以我一直在想我是否遗漏了一些东西。