Как воспроизвести вычисленное хеш-значение в таблице SQL? - PullRequest
0 голосов
/ 10 июля 2020

У нас есть столбец в таблице, который представляет собой вычисленную HA SH:

enter image description here

My question is, how do I replicate that computed value so that I can join on it? For example, given this row:

введите описание изображения здесь

Я пробую это:

select (CONVERT([uniqueidentifier],hashbytes('MD2',concat('ABC-123','en'))));

Где ABC-123 будет значением Phrase. Но это дает мне совсем другое значение ha sh:

A549AB46-7111-6833-F5A9-C0102F63E822

Я предполагаю, потому что он не использует тот же uniqueidentifier?

Что мне нужно сделать, чтобы я мог воспроизвести исходное вычисленное и сохраненное значение ha sh?

1 Ответ

1 голос
/ 10 июля 2020

У вас должен быть sh тот же тип данных. Поэтому перед хешированием преобразуйте целевую фразу в nvarchar(max), и она должна совпадать. Например,

CONVERT([uniqueidentifier],hashbytes('MD2',cast(concat('ABC-123' ,'en') as nvarchar(max))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...