Полезные 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

Это снижение стоимости владения

за счет меньшего количества людей для поддержки и узкого стека разработки. Про снижение стоимости владения продуктом

Это быстрое внесение изменений

по ходу эксплуатации программы. Как создается функционал на платформе

Это простой удобный интерфейс

адаптация под мобильные устройства. Про юзабилити платформы

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