У меня возникла проблема с записью хранимой процедуры, которая сначала проверяет хешированный пароль на пароль, предоставленный пользователем (также хешированный). Если пароли совпадают, процедура изменит пароль на новый пароль, который будет предоставлен пользователем для хэширования перед сохранением. Я взял на него удар и включил код ниже, который кажется полностью вне правильного синтаксиса. Любая помощь, которая может быть поставлена, будет очень оценена. Код в вопросе ниже:Сохраненная процедура, которая сначала соответствует паролю, а затем меняет его
Create Proc UserChangePassword
@pGuid varchar(50),
@pOldPassword varchar(100),
@pHashedPassword varchar (100),
@pNewPassword varchar(10)
AS
set @pHashedPassword = HASHBYTES('md5', @pOldPassword)
set @pOldPassword as select st01Password from st01UserData where @pGuid = st01GUID
If (@pOldPassword = @pHashedPassword)
Begin
Update st01UserData (
set st01Password = HASHBYTES('md5', @pNewPassword))
where st01GUID = @pGuid
Return 'SUCCESS'
Else
RETURN 'FAILED'
GO
Почему размер Новый_пароль только 10? Я надеюсь, что это не предел размера пароля; позвольте по крайней мере 32 – Riking
Почему вы не проходите в хешировании? Приложение должно иметь возможность хешировать ввод пользователя и отправлять его в хеширование ... Я не уверен, почему вы хотите разоблачить его через большее количество слоев в виде обычного текста. –