Статус: Участник
Группы: Участники
Зарегистрирован: 10.11.2016(UTC) Сообщений: 10
|
Добрый день, получаю значения хэша при помощи следующего кода: Код:
var str = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pgo8ZHRSZWdpc3Rlcj4KICAgIDx0eXBlPlVEVDwvdHlwZT4KICAgIDxudW1iZXI+NTU8L251bWJlcj4KICAgIDxjcmVhdGVEYXRlPjIwMTktMTItMDMrMDM6MDA8L2NyZWF0ZURhdGU+CiAgICA8ZmFjdG9yaW5nQ29udHJhY3ROdW1iZXI+MDg4LdCQMzwvZmFjdG9yaW5nQ29udHJhY3ROdW1iZXI+CiAgICA8ZGVidG9yTmFtZT43ODEyMDE0NTYwPC9kZWJ0b3JOYW1lPgogICAgPGRlYnRvcklubj43ODEyMDE0NTYwPC9kZWJ0b3JJbm4+CiAgICA8ZGVidG9yS3BwPjYzMTY0MzAwMTwvZGVidG9yS3BwPgogICAgPHN1cHBsaWVzPgogICAgICAgIDxzdXBwbHk+CiAgICAgICAgICAgIDxzdXBwbHlDb250cmFjdE51bWJlcj5BLTAwODNfdDwvc3VwcGx5Q29udHJhY3ROdW1iZXI+CiAgICAgICAgICAgIDxkZXNpcmVkRnVuZGluZ0RhdGU+MjAxOS0xMi0zMSswMzowMDwvZGVzaXJlZEZ1bmRpbmdEYXRlPgogICAgICAgICAgICA8ZG9jdW1lbnRUeXBlPkFDVDwvZG9jdW1lbnRUeXBlPgogICAgICAgICAgICA8ZG9jdW1lbnROdW1iZXI+NDUyNTQyMjU8L2RvY3VtZW50TnVtYmVyPgogICAgICAgICAgICA8ZG9jdW1lbnREYXRlPjIwMTktMTItMTgrMDM6MDA8L2RvY3VtZW50RGF0ZT4KICAgICAgICAgICAgPHJlY2VpdmVkRGF0ZT4yMDE5LTEyLTMxKzAzOjAwPC9yZWNlaXZlZERhdGU+CiAgICAgICAgICAgIDxwYXltZW50RGVsYXk+NDU8L3BheW1lbnREZWxheT4KICAgICAgICAgICAgPGludm9pY2VEYXRlPjIwMTktMTItMjQrMDM6MDA8L2ludm9pY2VEYXRlPgogICAgICAgICAgICA8c3VtV2l0aFZhdD40NTI0NS4wMDwvc3VtV2l0aFZhdD4KICAgICAgICA8L3N1cHBseT4KICAgIDwvc3VwcGxpZXM+CiAgICA8c3VtV2l0aFZhdCB4c2k6dHlwZT0ieHM6ZGVjaW1hbCIgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj40NTI0NS4wMDwvc3VtV2l0aFZhdD4KPC9kdFJlZ2lzdGVyPgo=";
cadesplugin.CreateObjectAsync("CAdESCOM.HashedData").then(oHData => oHData.propset_Algorithm(cadesplugin["CADESCOM_HASH_ALGORITHM_CP_GOST_3411"]).then(oHashedData => {oHData.Hash(str); console.log(oHData.Value)}));
В ответ получаю такой хэш: ED3ACC1A124A2E731B263028B80A5A4E514816AD70BBE13C9A1B85BFF4D9659A Затем, сохраняю эту строку в файл и использую утилиту cpverify: cpverify -mk -inverted_halfbytes 0 "C:\Users\meiha\Downloads\dt_register (12)\new_decoded.xml" -alg GR3411 в ответ получаю хэш 9F5DD554A69D1250C200227FE72B768B97A50630C07BB092463B0EC13C504C6F Строка в обоих случаях одна и та же, алгорит везде указан ГОСТ 3411, в чем может быть проблема? почему значения хэша не совпадают?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 05.07.2018(UTC) Сообщений: 467
Сказал(а) «Спасибо»: 43 раз Поблагодарили: 69 раз в 61 постах
|
Добрый день.
Проблема может быть в кодировке данных, которую вы подаете на вход для вычисления хеша. |
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602 Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 394 раз в 366 постах
|
Смысл в том, что плагин декодирует base64 перед вычислением хэша, а утилита что считала из файла то и берет на вычисление хэша. Чтобы совпадало нужно или закодировать еще раз перед передачей в плагин или декодировать перед записью в файл. Отредактировано пользователем 3 декабря 2019 г. 13:25:28(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,719 Сказал «Спасибо»: 500 раз Поблагодарили: 2054 раз в 1594 постах
|
Автор: MehAnat Добрый день, получаю значения хэша при помощи следующего кода: Код:
var str = "данные в base64;
cadesplugin.CreateObjectAsync("CAdESCOM.HashedData").then(oHData => oHData.propset_Algorithm(cadesplugin["CADESCOM_HASH_ALGORITHM_CP_GOST_3411"]).then(oHashedData => {oHData.Hash(str); console.log(oHData.Value)}));
В ответ получаю такой хэш: ED3ACC1A124A2E731B263028B80A5A4E514816AD70BBE13C9A1B85BFF4D9659A Затем, сохраняю эту строку в файл и использую утилиту cpverify: cpverify -mk -inverted_halfbytes 0 "C:\Users\meiha\Downloads\dt_register (12)\new_decoded.xml" -alg GR3411 в ответ получаю хэш 9F5DD554A69D1250C200227FE72B768B97A50630C07BB092463B0EC13C504C6F Строка в обоих случаях одна и та же, алгорит везде указан ГОСТ 3411, в чем может быть проблема? почему значения хэша не совпадают? Особенности работы с данными в КриптоПро ЭЦП Browser plug-inПравило: Выставить перед хешированием\ присвоением данных ContentEncoding = CADESCOM_BASE64_TO_BINARY; |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,719 Сказал «Спасибо»: 500 раз Поблагодарили: 2054 раз в 1594 постах
|
Автор: MehAnat Затем, сохраняю эту строку в файл и использую утилиту cpverify: cpverify -mk -inverted_halfbytes 0 "C:\Users\meiha\Downloads\dt_register (12)\new_decoded.xml" -alg GR3411
в ответ получаю хэш 9F5DD554A69D1250C200227FE72B768B97A50630C07BB092463B0EC13C504C6F
Строка в обоих случаях одна и та же, алгорит везде указан ГОСТ 3411, в чем может быть проблема? почему значения хэша не совпадают? да, правильно, это хеш от base64. Snimok ehkrana ot 2019-12-03 16-38-07.png (18kb) загружен 8 раз(а).Отредактировано пользователем 3 декабря 2019 г. 15:38:39(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,719 Сказал «Спасибо»: 500 раз Поблагодарили: 2054 раз в 1594 постах
|
Из документации: Цитата: По умолчанию свойство ContentEncoding(DataEncoding для CPHashedData) имеет значение CADESCOM_STRING_TO_UCS2LE.
Применительно к той строке в base64: Snimok ehkrana ot 2019-12-03 16-46-00.png (21kb) загружен 8 раз(а). |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close