Как рассчитать подпись данных алгоритмом HMAC-SHA256?
Пробую делать так:
Но подпись не совпадает при проверке на php.
Пробую делать так:
ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.SHA256);
ХешированиеДанных.Добавить(СтрокаСДанными);
ХешированиеДанных.Добавить(Секретныйключ);
Подпись = НРег(СтрЗаменить(ХешированиеДанных.ХешСумма, " ", ""));
Но подпись не совпадает при проверке на php.
По теме из базы знаний
- 001. Криптография и цифровая подпись RSA-sha256 на платформе 1С
- Криптовалюты, а также иные взгляды на природу денег в терминах 1С
- Подпись данных алгоритмами SHA + AES собственным модулем
- Из 1С в S3 и обратно. Работа с объектным хранилищем
- Глоссарий HTTP аутентификации: Basic, Bearer, OAuth и другие непонятные слова
Найденные решения
(5)Оказывается есть общий модуль РаботаВМоделиСервисаБТС и в нем есть функция Подпись. Правда она возвращает подпись в формате Base64. В итоге сделал:
И все заработало. Спасибо за наводку)
СекретныйКлюч = ПолучитьДвоичныеДанныеИзСтроки(СекретныйКлюч);
Подпись64 = РаботаВМоделиСервисаБТС.Подпись(СекретныйКлюч, СтрокаСДанными);
Подпись = НРег(СтрЗаменить( Base64Значение(Подпись64), " ", ""));
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Возьмите и проверьте в онлайн генераторах, кто правильно кодирует.
Кодируете двоичные данные или строку?
Вот этот код:
добавляет вторую строку сразу же, без разделителей.
Т.е. к примеру
СтрокаСДанными = "Это текст"
СекретныйКлюч = "123"
В итоге будет закодирована строка "Это текст123". В php так же сделано?
Кодируете двоичные данные или строку?
Вот этот код:
ХешированиеДанных.Добавить(СтрокаСДанными);
ХешированиеДанных.Добавить(Секретныйключ);
ХешированиеДанных.Добавить(Секретныйключ);
добавляет вторую строку сразу же, без разделителей.
Т.е. к примеру
СтрокаСДанными = "Это текст"
СекретныйКлюч = "123"
В итоге будет закодирована строка "Это текст123". В php так же сделано?
(5)Оказывается есть общий модуль РаботаВМоделиСервисаБТС и в нем есть функция Подпись. Правда она возвращает подпись в формате Base64. В итоге сделал:
И все заработало. Спасибо за наводку)
СекретныйКлюч = ПолучитьДвоичныеДанныеИзСтроки(СекретныйКлюч);
Подпись64 = РаботаВМоделиСервисаБТС.Подпись(СекретныйКлюч, СтрокаСДанными);
Подпись = НРег(СтрЗаменить( Base64Значение(Подпись64), " ", ""));
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот