SQL Server 2000,是 2000 密码哈希
我需要在 SQL Server 2000 数据库中存储密码。这些信息并不重要,但我真的不想以明文形式存储密码。由于 HashBytes 不可用,如何在 SQL Server 2000 中获得唯一的哈希值(sha、sha1、md5 等)。
我不是在寻找编译的 DLL 或类似的东西,我无权访问服务器,需要是纯 MS SQL。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
MS SQL Server 2000 中有一些未记录的(直到更高版本)函数,称为
pwdencrypt()
和pwdcompare()
。请参阅此博客:未记录的 SQL Server 2000 Functions
或者在 MSDN 在线书籍上:
PWDENCRYPT()< /code>
PWDCOMPARE()
然而,至少从 2002 年起,这个函数就被认为是不安全的。有关一些详细信息,请参见“破解 MS SQL Server 密码”。我想这就是它被哈希字节取代的原因。
如果您无法升级 SQL Server 实例或使用任何附加组件,这可能是您能做的最好的事情。除非您在应用程序代码中散列密码并存储生成的摘要字符串,从而将 SQL Server 排除在循环之外。
There are undocumented (until later versions) functions in MS SQL Server 2000 called
pwdencrypt()
andpwdcompare()
.See this blog: Undocumented SQL Server 2000 Functions
Or on MSDN books online:
PWDENCRYPT()
PWDCOMPARE()
However, this function has been known to be insecure since at least 2002. For some details see "Cracking MS SQL Server passwords" at TheRegister. I guess that's why it got replaced by Hashbytes.
If you can't upgrade your SQL Server instance or use any add-ons, this might be the best you can do. Unless you hash the password in application code and store the resulting digest string, leaving the SQL Server out of the loop.