Статус: Участник
Группы: Участники
Зарегистрирован: 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 с текстом через консоль хэш будет Цитата:5DD7B06E2361E71FEB580785A7659795222C7B9EEA8B99D3BD7BB2A4CFC5FDDB , а через CAdESCOM.HashedData Цитата:054E92C79EBD3222B3E70F6954FB22E6C7B451A3AB520E1CA0B77E23CDF1597F
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,735 Сказал «Спасибо»: 502 раз Поблагодарили: 2060 раз в 1599 постах
|
Здравствуйте. Потому что требуется передавать как base64 и до этого указывать, что закодированы байты? Цитата:request_file = open(r'C:/Path/To/file.txt', encoding='ascii')
а если там другая кодировка? |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,735 Сказал «Спасибо»: 502 раз Поблагодарили: 2060 раз в 1599 постах
|
Особенности работы с данными Цитата: Задание кодировки подписываемых данных Для того чтобы плагин узнал о способе кодирования данных для подписи, введено новое свойство ContentEncoding(DataEncoding для CPHashedData). ContentEncoding(DataEncoding) имеет следующие значения: ...
CADESCOM_BASE64_TO_BINARY = 0x01 Данные будут перекодированы из Base64 в бинарный массив.
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,735 Сказал «Спасибо»: 502 раз Поблагодарили: 2060 раз в 1599 постах
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 11.08.2023(UTC) Сообщений: 10 Откуда: Белгород Сказал(а) «Спасибо»: 2 раз
|
Закодировал сообщение Hello! в Base64, получилось SGVsbG8h. Поменял DataEncoding на 1. Хэш через консоль Цитата:E9D558B8229E51BE1588A7D3AF76EA3759498441489A7B058391043D781D3407 Через код Цитата:5DD7B06E2361E71FEB580785A7659795222C7B9EEA8B99D3BD7BB2A4CFC5FDDB
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 11.08.2023(UTC) Сообщений: 10 Откуда: Белгород Сказал(а) «Спасибо»: 2 раз
|
Кодировку пробовал ставить utf-8, пробовал не указывать. Не помогает
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 11.08.2023(UTC) Сообщений: 10 Откуда: Белгород Сказал(а) «Спасибо»: 2 раз
|
В примере на JS хэш совпал с тем, что получился в Python, но в консоли все еще другой
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,735 Сказал «Спасибо»: 502 раз Поблагодарили: 2060 раз в 1599 постах
|
Автор: MSBear007 В примере на JS хэш совпал с тем, что получился в Python, но в консоли все еще другой что за консоль...? |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,735 Сказал «Спасибо»: 502 раз Поблагодарили: 2060 раз в 1599 постах
|
Цитата:cpverify.exe -mk -alg GR3411_2012_256 "C:\Path\to\file.txt" правильно считает, не нужно там с файлом ничего делать. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 11.08.2023(UTC) Сообщений: 10 Откуда: Белгород Сказал(а) «Спасибо»: 2 раз
|
В консоли — имеется в виду в командной строке через cpverify
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close