Пароли хранятся как varbinary (200). Соли были сгенерированы как уникальные определения в SQL Server. Миграция преобразовала соли в варчар (64). Пароли остались как Varbinary. < /P>
Пароли были созданы и сравнивались с использованием: < /p>
Код: Выделить всё
HASHBYTES('SHA2_512','Password' + CAST(Salt AS NVARCHAR(36)))
< /code>
Похоже, что эквивалент в mysql должен быть: < /p>
SHA2('Password' + CAST(Salt AS NVARCHAR(36)),512)
< /code>
Но MySQL не может снять в NVARCHAR. Думаю, он может разыграть в Чар или конвертировать в NCHAR. Но проблема кажется более фундаментальной, чем эта. Я не уверен, что это влияет на хэш.SELECT CONVERT(CHAR(1000), HASHBYTES('SHA2_512', 'test'), 1) AS Expr1
mysql < /p>
Код: Выделить всё
SELECT SHA2('test',512) AS Expr1
Это не выглядит хорошо ... < /li>
< /ol>
Код: Выделить всё
SELECT CONVERT(CHAR(100), HASHBYTES('SHA2_512', 'testpass' + CAST('testsalt' AS CHAR(36))), 1) AS Expr1
< /code>
0xE34AC23CB037D26142B72C1A6569DC64222314240F408B85F469638EF9A1F00F8FBCDEB14240830C8D9D247F142FCDEB14240830C8D9D247F142AF1. class = "lang-sql prettyprint-override">SELECT SHA2('testpass' + CAST('testsalt' AS CHAR(36)),512) AS Expr1
Таким образом, это терпит неудачу, даже при отработке оба как Чар (36). Доход в Нварчар кажется далеко. Я не технический эксперт - выше>
Подробнее здесь: https://stackoverflow.com/questions/797 ... r-to-mysql
Мобильная версия