5
我需要在SQL Server 2000数据库中存储密码。信息并不重要,但我真的不想以明文形式存储密码。由于HashBytes不可用,我如何在SQL Server 2000中获得唯一的散列(sha,sha1,md5等)。SQL Server 2000,是2000密码哈希
我不寻找编译的DLL或类似的,我没有访问服务器,需要是纯粹的MS SQL。
我需要在SQL Server 2000数据库中存储密码。信息并不重要,但我真的不想以明文形式存储密码。由于HashBytes不可用,我如何在SQL Server 2000中获得唯一的散列(sha,sha1,md5等)。SQL Server 2000,是2000密码哈希
我不寻找编译的DLL或类似的,我没有访问服务器,需要是纯粹的MS SQL。
在MS SQL Server 2000中有未记录(直到后来的版本)函数,称为pwdencrypt()
和pwdcompare()
。
看到这个博客:Undocumented SQL Server 2000 Functions
或者对MSDN联机丛书:
然而,这种功能被称为是不安全的,因为至少2002年。有关详细信息,请参阅TheRegister上的“Cracking MS SQL Server passwords”。我想这就是为什么它被替换为Hashbytes。
如果您无法升级您的SQL Server实例或使用任何加载项,这可能是您可以做的最好的。除非您在应用程序代码中散列密码并存储结果摘要字符串,否则将SQL Server留在循环之外。