1

我有一个表单登录,并想检查登录名和密码是否与系统表 master.dbo.syslogins 中的名称和密码匹配,但列密码已加密。像这样的程序:

    create proc checklogin(@name nchar(10), @password nvarchar, @tb nchar(10) out)
as
if Exists (select * from master.dbo.syslogins where name = @name and password=@password)
begin
set @tb='success';
else set @tb='fail';

我无法比较密码,因为它已在数据库中加密。我想知道是否有其他方法可以检查或如何解密密码。任何帮助都会很棒。

4

1 回答 1

0

使用 PWDCOMPARE() 函数。

select * from master.dbo.syslogins 
where name = @name and PWDCOMPARE(@password,password) = 1
于 2013-05-14T08:14:17.310 回答