Полезные SQL функции для API

В Falcon Space есть набор полезных функций SQL, которые выполняют стандартные преобразования 

as_md5 - генерирует хеш строку MD5. Пример: dbo.as_md5('123')

as_hmac - генерирует хеш код в SHA1 и других форматах (https://ru.wikipedia.org/wiki/HMAC).  Пример: 

 select dbo.as_hmac('SHA1', convert(varbinary(max), @secret), 
	 convert(varbinary(max), @data ))

Важно, чтобы @secret и @data были varchar(max), а не nvarchar(max)

as_strToBase64 - генерирует значение в кодировке base64. Если на входе varbinary(max), то преобразуем специальным образом: 

select dbo.as_strToBase64(lower(convert(nvarchar(max), @sh1, 2))) 

as_NCharToUTF8Binary - преобразуем строку nvarchar в binary(max).  

fn_PBKDF2 - стандарт формирования ключа на основе пароля. https://ru.wikipedia.org/wiki/PBKDF2

Конвертация в SHA-256

declare @val varchar(max) = '123'
sha256 -  SELECT CONVERT(VARCHAR(100),HASHBYTES('SHA2_256',@val),2); -- SHA-256

На практике возникает множество нюансов и возвращаемые функции могут давать не совсем тот результат - это зависит от формата входных данных (varbinary, nvarchar или varchar, lower or not). Проверяйте промежуточные тестовые данные через онлайн сервисы: 

Здесь также можно проверить как генерируются HASH и HMAC: 

Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Получить оценку проекта
Создайте концепцию проекта на основе нашего шаблона и получите оценку проекта в виде КП.
Демо-сайт решений
Базисные решения, которые можно гибко адаптировать под себя: менять внешний вид, бизнес-логику и даже структуру базы данных.
Сайт использует Cookie. Правила конфиденциальности OK