Я использую хешированные пароли с солью (именем пользователя).
Проблема в том, что хешированные значения 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
Хэш C# SHA256Managed не равен TSQL SHA2_256. ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Невозможно воспроизвести эффект mallopt(M_PERTURB, 256) с MALLOC_PERTURB_=256.
Anonymous » » в форуме C++ - 0 Ответы
- 54 Просмотры
-
Последнее сообщение Anonymous
-
-
-
ValueError:Tensor("входные данные:0", shape=(None, 256, 256, 3), dtype=uint8)
Anonymous » » в форуме Python - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-