Каталог решений - Хеширование данных с ключом по алгоритму SHA-1 штатными средствами 1С

Хеширование данных с ключом по алгоритму SHA-1 штатными средствами 1С

Хеширование данных с ключом по алгоритму SHA-1 штатными средствами 1С

В наличии

Расчет хеш суммы данных по алгоритму SHA-1 с ключом штатными средствами 1С.

Категория:

Описание

Потребовалось реализовать обмен данными с веб-сервером, одним из теребованием авторизации было хеширование данных с секретным ключом.

Пример реализации расчета хеш суммы данных по алгоритму SHA-1 с ключом штатными средствами 1С.

 

//Функция ХэшированиеШтатныеСредства(СтрокаJSON, Base64JSON ,КлючХешированияДанных = «»)

//
//Описание:
// Реализует инкрементальный расчет хеш-суммы по добавленным данным, использую хеш функцию SHA1.
//
//Параметры:
// СтрокаJSON - Строка. Строка в формате JSON.
//
// КлючХешированияДанных - Строка. Закодированные данные идентификатора в base64.
//
// Возвращаемое значение:
// Строка. Закодированная хеш сумма в base64.
//
Функция ХэшированиеШтатныеСредства(СтрокаJSON, КлючХешированияДанных = "")

Base64JSON = ЗакодироватьВBase64(СтрокаJSON);

ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.SHA1);
ХешированиеДанных.Добавить(base64Значение(КлючХешированияДанных));
ХешированиеДанных.Добавить(base64Значение(Base64JSON));

ТипДвоичныеДанные = ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "base64Binary");
ДвоичныеДанные = ФабрикаXDTO.Создать(ТипДвоичныеДанные,ХешированиеДанных.ХешСумма);

Возврат ДвоичныеДанные.ЛексическоеЗначение;

КонецФункции
Функция ЗакодироватьВBase64(СтрокаДанных) 

ИмяФайлаЗаписьТекст = ПолучитьИмяВременногоФайла(); 

ЗаписьТекста = Новый ЗаписьТекста(ИмяФайлаЗаписьТекст); 
ЗаписьТекста.ЗаписатьСтроку(СтрокаДанных); 
ЗаписьТекста.Закрыть(); 

ДвДанны = Новый ДвоичныеДанные(ИмяФайлаЗаписьТекст); 

Возврат base64Строка(ДвДанны); 

КонецФункции
has been added to your cart:
Оформление заказа