Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline MSBear007  
#1 Оставлено : 11 августа 2023 г. 15:59:02(UTC)
MSBear007

Статус: Участник

Группы: Участники
Зарегистрирован: 11.08.2023(UTC)
Сообщений: 10
Российская Федерация
Откуда: Белгород

Сказал(а) «Спасибо»: 2 раз
Вычисляю хэш по алгоритму ГОСТ 34.11 2012 (256 бит) через утилиту cpverify.exe, и вызывая метод Hash объекта CAdESCOM.HashedData. Хэши не совпадают.

1 способ:
Код:
cpverify.exe -mk -alg GR3411_2012_256 "C:\Path\to\file.txt"


2 способ (Python):
Код:

import win32com.client


hasher = win32com.client.Dispatch("CAdESCOM.HashedData")

request_file = open(r'C:/Path/To/file.txt', encoding='ascii')
request_str = request_file.read()

hasher.DataEncoding = 0
hasher.Algorithm = 101 # CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256
hasher.Hash(request_str)


Пробовал менять DataEncoding, инвертировать полубайты — не помогает.
Для файла hello.txt с текстом
Цитата:
Hello!
через консоль хэш будет
Цитата:
5DD7B06E2361E71FEB580785A7659795222C7B9EEA8B99D3BD7BB2A4CFC5FDDB

, а через CAdESCOM.HashedData
Цитата:
054E92C79EBD3222B3E70F6954FB22E6C7B451A3AB520E1CA0B77E23CDF1597F
Offline Андрей *  
#2 Оставлено : 11 августа 2023 г. 16:09:32(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,719
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Здравствуйте.

Потому что требуется передавать как base64 и до этого указывать, что закодированы байты?

Цитата:
request_file = open(r'C:/Path/To/file.txt', encoding='ascii')

а если там другая кодировка?
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#3 Оставлено : 11 августа 2023 г. 16:10:47(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,719
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Особенности работы с данными
Цитата:

Задание кодировки подписываемых данных
Для того чтобы плагин узнал о способе кодирования данных для подписи, введено новое свойство ContentEncoding(DataEncoding для CPHashedData). ContentEncoding(DataEncoding) имеет следующие значения:
...

CADESCOM_BASE64_TO_BINARY = 0x01 Данные будут перекодированы из Base64 в бинарный массив.
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#4 Оставлено : 11 августа 2023 г. 16:21:46(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,719
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
на js пример с комментариями - Вычисление хэш-значения бинарных данных

Техническую поддержку оказываем тут
Наша база знаний
Offline MSBear007  
#5 Оставлено : 11 августа 2023 г. 16:22:32(UTC)
MSBear007

Статус: Участник

Группы: Участники
Зарегистрирован: 11.08.2023(UTC)
Сообщений: 10
Российская Федерация
Откуда: Белгород

Сказал(а) «Спасибо»: 2 раз
Закодировал сообщение Hello! в Base64, получилось SGVsbG8h. Поменял DataEncoding на 1.
Хэш через консоль
Цитата:
E9D558B8229E51BE1588A7D3AF76EA3759498441489A7B058391043D781D3407

Через код
Цитата:
5DD7B06E2361E71FEB580785A7659795222C7B9EEA8B99D3BD7BB2A4CFC5FDDB
Offline MSBear007  
#6 Оставлено : 11 августа 2023 г. 16:28:07(UTC)
MSBear007

Статус: Участник

Группы: Участники
Зарегистрирован: 11.08.2023(UTC)
Сообщений: 10
Российская Федерация
Откуда: Белгород

Сказал(а) «Спасибо»: 2 раз
Кодировку пробовал ставить utf-8, пробовал не указывать. Не помогает
Offline MSBear007  
#7 Оставлено : 11 августа 2023 г. 16:38:01(UTC)
MSBear007

Статус: Участник

Группы: Участники
Зарегистрирован: 11.08.2023(UTC)
Сообщений: 10
Российская Федерация
Откуда: Белгород

Сказал(а) «Спасибо»: 2 раз
В примере на JS хэш совпал с тем, что получился в Python, но в консоли все еще другой
Offline Андрей *  
#8 Оставлено : 11 августа 2023 г. 16:53:30(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,719
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Автор: MSBear007 Перейти к цитате
В примере на JS хэш совпал с тем, что получился в Python, но в консоли все еще другой


что за консоль...?
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#9 Оставлено : 11 августа 2023 г. 16:54:15(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,719
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Цитата:
cpverify.exe -mk -alg GR3411_2012_256 "C:\Path\to\file.txt"


правильно считает, не нужно там с файлом ничего делать.
Техническую поддержку оказываем тут
Наша база знаний
Offline MSBear007  
#10 Оставлено : 11 августа 2023 г. 17:04:01(UTC)
MSBear007

Статус: Участник

Группы: Участники
Зарегистрирован: 11.08.2023(UTC)
Сообщений: 10
Российская Федерация
Откуда: Белгород

Сказал(а) «Спасибо»: 2 раз
В консоли — имеется в виду в командной строке через cpverify
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.