Dave Kreskowiak
Он возвращает 0, потому что PWDCOMPARE хэширует открытый текстовый пароль, который вы передаете, с помощью алгоритма, который не является SHA2_512.
Вы можете увидеть это сами, сделав это:
DECLARE @Original nvarchar(128) = '1';
DECLARE @Hashed varbinary(128) = HASHBYTES('SHA2_512', '1');
SELECT PWDENCRYPT(@Original) AS 'PWDENCRYPT Hash';
SELECT @Hashed AS 'SHA2_512 Hash';
SELECT PWDCOMPARE(@Original, @Hashed);
Вы должны использовать PWDCOMPARE только с тем столбцом, который был зашифрован с помощью PWDENCRYPT.
Вы больше не должны быть PWDENCRYPT. Вместо этого используйте ХЭШБАЙТЫ и сравните их со значением столбца самостоятельно.