Хеширование данных с ключом по алгоритму HMAC-SHA1 / HMAC-SHA256 средствами 1С
Алгоритмы;

Привожу пример шифрования по алгоритмам HMAC-SHA1 и HMAC-SHA256 средствами только языка 1С. Данный код найден на просторах интернета, автору огромное спасибо!
Использование данных алгоритмов хеширования часто требуют сторонние веб-приложения при обращении к ним через api.

Процедура КнопкаВыполнитьНажатие(Элемент)  
СтрокаДляХеш = "";
// указываем строку для хеширования
КлючДляХеш = "";
// указываем ключ для хеширования   
СтруктураРезультата = ВыполнитьШифрование(СтрокаДляХеш,КлючДляХеш);
Сообщить(СтруктураРезультата.ДД);
Сообщить(СтруктураРезультата.HexСтрока);
// равносильно результату функции CryptoJS.HmacSHA1(message, secret) на js // или CryptoJS.HmacSHA256
Сообщить(СтруктураРезультата.Base64Строка); 
// равносильно результату функции CryptoJS.enc.Base64.stringify(CryptoJS.HmacSHA1(message, secret)) на js // или CryptoJS.HmacSHA256
КонецПроцедуры

Функция ВыполнитьШифрование(СтрокаДляХеш,КлючДляХеш)

СтрокаНули = "00000000000000000000000000000000000000000000000000000000000­000000000000000000000000000000000000000000000000000000000000­000000000";
СтрокаОПАД = "5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5­c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5­c5c5c5c5c";
СтрокаИПАД = "36363636363636363636363636363636363636363636363636363636363­636363636363636363636363636363636363636363636363636363636363­636363636";

К = ПолучитьДвоичныеДанныеИзСтроки(КлючДляХеш);
 
К = ПолучитьБуферДвоичныхДанныхИзДвоичныхДанных(К);
Нули = ПолучитьБуферДвоичныхДанныхИзHexСтроки(СтрокаНули);      
Нули.ЗаписатьПобитовоеИли(0,К);             
Шаг1 = ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных(Нули);

ИПАД = ПолучитьБуферДвоичныхДанныхИзHexСтроки(СтрокаИПАД);
БуферШаг1 = ПолучитьБуферДвоичныхДанныхИзДвоичныхДанных(Шаг1);
ИПАД.ЗаписатьПобитовоеИсключительноеИли(0,БуферШаг1);
Шаг2 = ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных(ипад);
   
БуферШаг2 = ПолучитьБуферДвоичныхДанныхИзДвоичныхДанных(Шаг2);
БуферТекст = ПолучитьБуферДвоичныхДанныхИзСтроки(СтрокаДляХеш);
БуферШаг3 = БуферШаг2.Соединить(БуферТекст);
Шаг3 = ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных(БуферШаг3);
 
ХД = Новый ХешированиеДанных(ХешФункция.SHA1);
// Для SHA256 изменить на ХешФункция.SHA256
ХД.Добавить(Шаг3);
Шаг4 = ХД.ХешСумма;
 
ОПАД = ПолучитьБуферДвоичныхДанныхИзHexСтроки(СтрокаОПАД);
БуферШаг1 = ПолучитьБуферДвоичныхДанныхИзДвоичныхДанных(Шаг1);
ОПАД.ЗаписатьПобитовоеИсключительноеИли(0,БуферШаг1);
Шаг5 = ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных(ОПАД);

БуферШаг4 = ПолучитьБуферДвоичныхДанныхИзДвоичныхДанных(Шаг4);
БуферШаг5 = ПолучитьБуферДвоичныхДанныхИзДвоичныхДанных(Шаг5);
БуферШаг6 = БуферШаг5.Соединить(БуферШаг4);
Шаг6 = ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных(БуферШаг6);

ХД = Новый ХешированиеДанных(ХешФункция.SHA1);
// Для SHA256 изменить на ХешФункция.SHA256
ХД.Добавить(Шаг6);
Шаг7 = ХД.ХешСумма;

СтруктураРезультата = Новый Структура;
СтруктураРезультата.Вставить("ДД",Шаг7);
СтруктураРезультата.Вставить("HexСтрока",НРег(ПолучитьHexСтрокуИзДвоичныхДанных(Шаг7)));
СтруктураРезультата.Вставить("Base64Строка",Base64Строка(Шаг7));

Возврат СтруктураРезультата;          
КонецФункции