Хеширование данных с ключом по алгоритму 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Строка(ДвДанны); КонецФункции

