Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Update password  [new]
Update password
Guest
Доброго времени суток,

есть таблица в которой хранятся логин и пароль, делаю следующее:

создаю процедуру по смене пароля в таблице, в процедуре примерно следующее:

ALTER procedure [dbo].[set_password]
  @Login NVARCHAR(50),
  @Password NVARCHAR(50)
as
begin
	declare @new_pwd NVARCHAR(50);
	
	set @new_pwd = CONVERT(NVARCHAR(50),HashBytes('MD5', @Password),2);
		
	update 	table_name
	set 	Password = @new_pwd
	where 	LOGIN = @Login;

end


вызываю процедуру, она отрабатывает, но в поле пишет совсем другой хэш, т.е. если делаю так:
use [test];
go
exec [dbo].[set_password] @login = 'LOGIN', @password = 'aaaa1234';


смотрю то что в таблице в поле Password и
SELECT CONVERT(NVARCHAR(50),HashBytes('MD5', 'aaaa1234'),2)
значения не совпадают.

Подскажите куда копать?

Спасибо!
4 июн 14, 06:55    [16116353]     Ответить | Цитировать Сообщить модератору
 Re: Update password  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
Update password,

потому что в процедуре вы передаете переменную с типом nvarchar, а в запросе строковую константу с типом varchar.
Попробуйте так
SELECT CONVERT(NVARCHAR(50),HashBytes('MD5', N'aaaa1234'),2)
4 июн 14, 07:20    [16116368]     Ответить | Цитировать Сообщить модератору
 Re: Update password  [new]
Update password
Guest
Ruuu
Update password,

потому что в процедуре вы передаете переменную с типом nvarchar, а в запросе строковую константу с типом varchar.
Попробуйте так
SELECT CONVERT(NVARCHAR(50),HashBytes('MD5', N'aaaa1234'),2)


Да, в процедуре сменил тип на varchar тперь всё работает,

Спасибо!
4 июн 14, 08:03    [16116408]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить