Решение задач 1С:Предприятие 8 на примерах

Base64 и хеш-суммы для 1С: MD5, SHA-1, SHA-256, CRC32, HMAC

Закодируйте строку в Base64 или раскодируйте обратно, посчитайте хеш-суммы и подпись HMAC. Текст переводится в байты в кодировке UTF-8, как ПолучитьДвоичныеДанныеИзСтроки(Текст, КодировкаТекста.UTF8). Сравнивайте результат со значением из своего кода при интеграции с API.

Base64
MD5
SHA-1
SHA-256
CRC32
HMAC-SHA256
HMAC-SHA1


Код 1С

ДвоичныеДанные = ПолучитьДвоичныеДанныеИзСтроки(Текст, КодировкаТекста.UTF8);

// Base64 и обратно
СтрокаBase64 = ПолучитьBase64СтрокуИзДвоичныхДанных(ДвоичныеДанные);
СтрокаBase64 = СтрЗаменить(СтрЗаменить(СтрокаBase64, Символы.ВК, ""), Символы.ПС, "");
Исходный = ПолучитьСтрокуИзДвоичныхДанных(ПолучитьДвоичныеДанныеИзBase64Строки(СтрокаBase64), КодировкаТекста.UTF8);

// MD5, SHA-1, SHA-256: замените ХешФункция.SHA256 на MD5 или SHA1
Хеширование = Новый ХешированиеДанных(ХешФункция.SHA256);
Хеширование.Добавить(ДвоичныеДанные);
Хеш = НРег(ПолучитьHexСтрокуИзДвоичныхДанных(Хеширование.ХешСумма));

// CRC32: ХешСумма возвращает число
Хеширование = Новый ХешированиеДанных(ХешФункция.CRC32);
Хеширование.Добавить(ДвоичныеДанные);
CRC = Хеширование.ХешСумма;

HMAC собирается из ХешированиеДанных по стандартной схеме — готовая функция в статье «Хеширование HMAC-SHA1 и HMAC-SHA256 средствами 1С».

Частые ошибки при сравнении хешей

Частые вопросы

Есть ли в 1С функция HMAC?

Отдельной функции нет. HMAC собирают из ХешированиеДанных по стандартной схеме с ключом и двумя проходами — готовая функция разобрана в статье про HMAC-SHA1 и HMAC-SHA256.

Какие хеш-функции поддерживает ХешированиеДанных?

Перечисление ХешФункция содержит MD5, SHA1, SHA256 и CRC32. CRC32 возвращает число, остальные — двоичные данные.

Хеширование HMAC-SHA1 и HMAC-SHA256 средствами 1С

Алгоритмы

Готовая функция на языке 1С, которая считает HMAC-SHA1 и HMAC-SHA256 и возвращает результат в Hex и Base64. Пригодится для подписи запросов к сторонним API без внешних компонент.

HTTP-запросы из 1С к REST API: GET, POST и JSON

Интеграция и веб-сервисы

Готовые примеры GET и POST запросов из 1С к REST API по HTTPS: заголовки, токены, JSON, прокси, отправка файлов и универсальная функция-обёртка с логированием.

Работа с JSON в 1С: чтение, запись, даты и типичные ошибки

Интеграция и веб-сервисы

Практическое руководство по JSON в 1С: чтение строки и файла, Структура против Соответствия, запись массивов, даты, сериализация через XDTO и разбор частых ошибок.

Другие инструменты