【发布时间】:2011-02-15 18:04:41
【问题描述】:
我需要将密码存储在 SQL Server 2000 数据库中。这些信息并不重要,但我真的不想以明文形式存储密码。由于 HashBytes 不可用,如何在 SQL Server 2000 中获取唯一的哈希(sha、sha1、md5 等)。
我不是在寻找编译好的 DLL 之类的,我没有访问服务器的权限,需要纯 MS SQL。
【问题讨论】:
标签: hash sql-server-2000 passwords
我需要将密码存储在 SQL Server 2000 数据库中。这些信息并不重要,但我真的不想以明文形式存储密码。由于 HashBytes 不可用,如何在 SQL Server 2000 中获取唯一的哈希(sha、sha1、md5 等)。
我不是在寻找编译好的 DLL 之类的,我没有访问服务器的权限,需要纯 MS SQL。
【问题讨论】:
标签: hash sql-server-2000 passwords
MS SQL Server 2000 中有未记录的(直到更高版本)函数称为 pwdencrypt() 和 pwdcompare()。
查看此博客:Undocumented SQL Server 2000 Functions
或在线 MSDN 书籍:
但是,至少从 2002 年起,该功能就被认为是不安全的。有关详细信息,请参阅 TheRegister 上的“Cracking MS SQL Server passwords”。我想这就是它被 Hashbytes 取代的原因。
如果您无法升级 SQL Server 实例或使用任何附加组件,这可能是您能做的最好的事情。除非您在应用程序代码中散列密码并存储生成的摘要字符串,否则 SQL Server 将退出循环。
【讨论】: