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

Откуда:
Сообщений: 269
Добрый день всем!

ФинЦерт рассылает списки паспортов получателей платежей - мошенников в виде хэш (SHA2_256)
Каким образом правильно рассчитать хэш паспорта в MSSQL (версия 2016)?

Например для паспорта 6307111111 хэш от ФинЦерта представлен как d05fab81aefdfeac82c521c114d1c363a8a02d9d815fb897e97eaf08877d380b

Функция HASHBYTES выдает значение VARBINARY

DECLARE @HashThis nvarchar(4000);
SELECT @HashThis = CONVERT(nvarchar(4000),'6307111111');
SELECT HASHBYTES('SHA2_256', @HashThis);
GO


0x4E8523EA9E8E3F1F7454766E22E8DE799715D00C6582C510EB137F4B644B8CEC

Перевод в varchar ничего не дает

SELECT convert(varchar(max),HASHBYTES('SHA2_256', '6307111111'),1)
GO


0xD05FAB81AEFDFEAC82C521C114D1C363A8A02D9D815FB897E97EAF08877D380B
18 ноя 20, 08:33    [22234346]     Ответить | Цитировать Сообщить модератору
 Re: Хэш паспорта  [new]
НеофитSQL
Member [заблокирован]

Откуда: Маями
Сообщений: 760
Евгенич
Добрый день всем!

ФинЦерт рассылает списки паспортов получателей платежей - мошенников в виде хэш (SHA2_256)
Каким образом правильно рассчитать хэш паспорта в MSSQL (версия 2016)?

Например для паспорта 6307111111 хэш от ФинЦерта представлен как ==>d05fab81aefdfeac82c521c114d1c363a8a02d9d815fb897e97eaf08877d380b

Функция HASHBYTES выдает значение VARBINARY

DECLARE @HashThis nvarchar(4000);
SELECT @HashThis = CONVERT(nvarchar(4000),'6307111111');
SELECT HASHBYTES('SHA2_256', @HashThis);
GO


0x4E8523EA9E8E3F1F7454766E22E8DE799715D00C6582C510EB137F4B644B8CEC

Перевод в varchar ничего не дает

SELECT convert(varchar(max),HASHBYTES('SHA2_256', '6307111111'),1)
GO


==>0xD05FAB81AEFDFEAC82C521C114D1C363A8A02D9D815FB897E97EAF08877D380B


==> ?
18 ноя 20, 08:42    [22234348]     Ответить | Цитировать Сообщить модератору
 Re: Хэш паспорта  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
Проблема с переводом строки в нижний регистр, что ли?

Или

SELECT lower ( convert(varchar(100),HASHBYTES('SHA2_256', '6307111111'),2) )


или, еще лучше, d05fab81aefdfeac82c521c114d1c363a8a02d9d815fb897e97eaf08877d380b переведите в binary (32)
18 ноя 20, 08:43    [22234349]     Ответить | Цитировать Сообщить модератору
 Re: Хэш паспорта  [new]
Евгенич
Member

Откуда:
Сообщений: 269
Гавриленко Сергей Алексеевич,

Да, спасибо, lower не критичен, а вот параметр 2 в корне поменял ситуацию. Теперь все работает.
18 ноя 20, 09:48    [22234380]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить