| 
    
        
     
     | 
    
    
  | 
Подписать хэш файла | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        cmex    
     04.07.22 
            ✎
    19:25 
 | 
         
        Добрый день!
 
        Требуется подписать хэш файла, хэш вычисляется по алгоритму Gost34112012 - 256. Кто нибудь сталкивался с подобной задачей? Есть внешняя компонента от КриптоПро Cadescom hasheddata, но ей на вход передается строка. А как бы ДД передать?  | 
|||
| 
    2
    
        baza1    
     04.07.22 
            ✎
    20:37 
 | 
         
        а консольная утилита RHash не подходит?     
         | 
|||
| 
    3
    
        cmex    
     04.07.22 
            ✎
    22:43 
 | 
         
        (2) не, надо средствами 1с, максимум компоненту какую внешнюю использовать     
         | 
|||
| 
    4
    
        cmex    
     05.07.22 
            ✎
    09:32 
 | 
         
        оп     
         | 
|||
| 
    5
    
        arsik    
     гуру 
    05.07.22 
            ✎
    09:46 
 | 
         
        (0) Тебе для чего? Обычно Gostr34112012 для подписи сообщений используется в виде XML пакета. А внутрь XML можно и ДД закинуть.     
         | 
|||
| 
    6
    
        cmex    
     05.07.22 
            ✎
    10:27 
 | 
         
        (5) для оправки вложений в письмо в банк     
         | 
|||
| 
    7
    
        arsik    
     гуру 
    05.07.22 
            ✎
    10:32 
 | 
         
        (6) Ну так вложение в письмо скорее всего в base64. Ну вот и сконвертируй ДД в base64 и используй Gostr34112012.     
         | 
|||
| 
    8
    
        arsik    
     гуру 
    05.07.22 
            ✎
    10:37 
 | 
         
        Почитал http://www.cbr.ru/statichtml/file/59420/standart_6_1_2020_30092019.pdf
 
        Везде кодируется Base64, даже если передается в другом формате.  | 
|||
| 
    9
    
        cmex    
     05.07.22 
            ✎
    10:54 
 | 
         
        (7) так и делал, результат хэширования отличается от того, ктр вычисляется консольной утилитой от КриптоПро(     
         | 
|||
| 
    10
    
        cmex    
     05.07.22 
            ✎
    10:56 
 | 
         
        ДД = Новый ДвоичныеДанные(ИмяФайл);
 
        ДанныеДляПодписи = Base64Строка(ДД); И далее передаю её во внешнюю компоненту. Не работает. Может кодировка где не та? Но где ее указывать?  | 
|||
| 
    11
    
        arsik    
     гуру 
    05.07.22 
            ✎
    10:59 
 | 
         
        (9) А что за консольная утилита крипто про?     
         | 
|||
| 
    12
    
        cmex    
     05.07.22 
            ✎
    11:03 
 | 
||||
| 
    13
    
        arsik    
     гуру 
    05.07.22 
            ✎
    11:10 
 | 
         
        При расчете хэша (CPHashedData) что в DataEncoding указываешь? Может там нужно поиграть?     
         | 
|||
| 
    14
    
        arsik    
     гуру 
    05.07.22 
            ✎
    11:23 
 | 
         
        https://docs.cryptopro.ru/cades/reference/cadescom/cadescom_enum/cadescom_content_encoding_type
 
        Тебе нужно в DataEncoding указать CADESCOM_BASE64_TO_BINARY Кодировка BASE64. 0x01  | 
|||
| 
    15
    
        arsik    
     гуру 
    05.07.22 
            ✎
    11:25 
 | 
         
        https://docs.cryptopro.ru/cades/reference/cadescom/cadescom_interface/icphasheddatadataencoding
 
        Данное свойство задает кодировку данных, передаваемых в метод Hash, и должно быть задано до того, как будет впервые вызван метод Hash. По умолчанию свойство имеет значение CADESCOM_STRING_TO_UCS2LE. Задание свойства DataEncoding сбрасывает состояние объекта.     | 
|||
| 
    16
    
        arsik    
     гуру 
    05.07.22 
            ✎
    11:33 
 | 
         
        Короче в этом параметре единичку нужно указать перед расчетом хеша.     
         | 
|||
| 
    17
    
        cmex    
     05.07.22 
            ✎
    12:36 
 | 
         
        (16) Да, с 1 работает правильно, спасибо! Но я ее и ставил как в примере. Оказалось, что исходный хэш образец был некорректен, а в 1с правильный     
         | 
|||
| 
    18
    
        arsik    
     гуру 
    05.07.22 
            ✎
    12:43 
 | 
         
        (17) Но ты сказал, что cpverify.exe дает другое значение хеша. Какой еще исходный образец?     
         | 
|||
| 
    19
    
        cmex    
     05.07.22 
            ✎
    13:00 
 | 
         
        (18) прошу прощения, ввел в заблуждение я вас, как и меня ввели. мне прислали результат работы cpverify.exe, и это был образец, но потом я сам проверил и cpverify.exe выдал такой же хэш как и 1с, и оказалось, что в банке не тот алгоритм в cpverify.exe указали, чем и ввели в заблуждение)     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |