2010-05-05 136 views
5

我需要在SQL Server 2000数据库中存储密码。信息并不重要,但我真的不想以明文形式存储密码。由于HashBytes不可用,我如何在SQL Server 2000中获得唯一的散列(sha,sha1,md5等)。SQL Server 2000,是2000密码哈希

我不寻找编译的DLL或类似的,我没有访问服务器,需要是纯粹的MS SQL。

回答

4

在MS SQL Server 2000中有未记录(直到后来的版本)函数,称为pwdencrypt()pwdcompare()

看到这个博客:Undocumented SQL Server 2000 Functions

或者对MSDN联机丛书:

然而,这种功能被称为是不安全的,因为至少2002年。有关详细信息,请参阅TheRegister上的“Cracking MS SQL Server passwords”。我想这就是为什么它被替换为Hashbytes。

如果您无法升级您的SQL Server实例或使用任何加载项,这可能是您可以做的最好的。除非您在应用程序代码中散列密码并存储结果摘要字符串,否则将SQL Server留在循环之外。