Хэш C# SHA256Managed не равен TSQL SHA2_256.C#

Место общения программистов C#
Ответить
Anonymous
 Хэш C# SHA256Managed не равен TSQL SHA2_256.

Сообщение Anonymous »

Я использую хешированные пароли с солью (именем пользователя).

Проблема в том, что хешированные значения C# не равны исходным значениям, которые я добавляю к базу данных с помощью сценария TSQL.

TSQL:

UPDATE [Users]
SET Password = HASHBYTES('SHA2_256', 'test123'+UPPER([UserName]))
GO;


C#:

var passBytes = new UnicodeEncoding().GetBytes(pass);
var saltBytes = new UnicodeEncoding().GetBytes(userName.ToUpper());

var dataToHash = new byte[passBytes.Length + saltBytes.Length];
Array.Copy(passBytes, dataToHash, passBytes.Length);
Array.Copy(saltBytes, dataToHash, saltBytes.Length);

var sha = new SHA256Managed();
return sha.ComputeHash(dataToHash);


Думаю, это как-то связано с кодировкой.
Но я понятия не имею, как это исправить.

Имя пользователя — varchar(50)

БД уже существует, поэтому изменить varchar будет не так просто.< /p>

Я уже пробовал:

UPDATE [Users]
SET Password = HASHBYTES('SHA2_256', N'test123'+UPPER([UserName]))
GO;


Подробнее здесь: https://stackoverflow.com/questions/192 ... l-sha2-256
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»