|   |   | 
| 
 | почему ПорядокБайтов для ДД не имеет значения? | ☑ | ||
|---|---|---|---|---|
| 0
    
        DES 25.03.23✎ 13:47 | 
        Записываю двоичные данные (20 байт) в файл при разных значениях ПорядокБайтов
 ПотокКонечный = ФайловыеПотоки.ОткрытьДляЗаписи(ПолноеИмяФайла+"_B"); ЗаписьДанных = Новый ЗаписьДанных(ПотокКонечный,,ПорядокБайтов.BigEndian); ЗаписьДанных.Записать(ДД); ЗаписьДанных.Закрыть(); ПотокКонечный.Закрыть(); ПотокКонечный = ФайловыеПотоки.ОткрытьДляЗаписи(ПолноеИмяФайла+"_L"); ЗаписьДанных = Новый ЗаписьДанных(ПотокКонечный,,ПорядокБайтов.LittleEndian); ЗаписьДанных.Записать(ДД); ЗаписьДанных.Закрыть(); ПотокКонечный.Закрыть(); результат смотрю notepad++ с плагином HEX никакой разницы в файлах. Это так должно быть ? | |||
| 1
    
        Aleksey 25.03.23✎ 13:52 | 
        может у тебя однобитовые знаяения и для них порядок байтов не играет роли     | |||
| 2
    
        Кирпич 25.03.23✎ 15:48 | 
        порядок байтов имеет смысл, когда записываешь в поток числа из нескольких байт. например, int32 - это 4 байта. вот эти 4 байта и будут перестанавливаться.     | |||
| 3
    
        DES 25.03.23✎ 16:28 | 
        как записывается хеш SHA-1 (20 байт) на NIX-сах ?
 Потому что какая то какая то ерунда получается выходной код на никсах и на винде вроде по разному сохраняется в файл | |||
| 4
    
        DES 25.03.23✎ 16:38 | 
        есть фича которая преобразует 20 байт (5 слов по 4 байта) из big-endian в little ?     | |||
| 5
    
        Aleksey 25.03.23✎ 17:00 | 
        (3) за порядок же BOM отвечает или он одинаковый и там и там?     | |||
| 6
    
        DES 25.03.23✎ 17:11 | 
        (5) без бома     | |||
| 7
    
        Aleksey 25.03.23✎ 17:12 | 
        (6) юникод и без бома? или это utf-8 кге априори все однобайтовое?     | |||
| 8
    
        DES 25.03.23✎ 17:32 | 
        функция на вебсервере вычисляет SHA1  и пишет в файл на клиенте.
 наверно сервер на никсах потому что делаю тоже самое на 1с8 но файл получается другой | |||
| 9
    
        Garykom гуру 25.03.23✎ 17:41 | 
        (8) вероятно у тебя "на 1с8" на вход функции другое подается
 проверь кодировку входящих и учти бом если утф8 | |||
| 10
    
        DES 25.03.23✎ 17:47 | 
        (9)файл от SHA1 20 байт - бом не влазит 
 другая инфа на входе - маловероятно . Это канонизированный XML c того же сервера же. | |||
| 11
    
        Garykom гуру 25.03.23✎ 17:49 | 
        (10) вот этот твой xml ты и сервер по разному читаете перед тем как считать хеш     | |||
| 12
    
        DES 25.03.23✎ 17:51 | 
        Перепробовал  все типы канонизации - результат не различается.
 написал на c# - результат такой же как и 1с8 но все не равно серверному. серверный BE 8F 8D 91 D9 22 AB 0D 3C B4 E2 18 2A AC 04 34 AD 61 3A FA 1ц - шный AA A2 58 90 03 7B 24 86 6B FA 52 10 0E 92 95 32 70 7A AD 08 | |||
| 13
    
        Garykom гуру 25.03.23✎ 17:54 | 
        (12) откуда ты знаешь что и как "функция на вебсервере вычисляет SHA1  и пишет в файл на клиенте." ?     | |||
| 14
    
        DES 25.03.23✎ 18:27 | 
        (13) ну из практики же
 Есть файл, есть алгоритм, есть пример на C# (как бы на сервере так) | |||
| 15
    
        Garykom гуру 25.03.23✎ 18:39 | 
        (14) а подумать?     | |||
| 16
    
        Chai Nic 25.03.23✎ 19:41 | 
        (12) Символ конца строки в одном случае включается в хэш, в другом не включается?     | |||
| 17
    
        DES 25.03.23✎ 20:10 | 
        (15) в точку.
 но в какую. | |||
| 18
    
        DES 25.03.23✎ 20:17 | 
        (16) Нет. Канонизатор режет все что после последнего ">"     | |||
| 19
    
        Chai Nic 25.03.23✎ 20:22 | 
        (18) А как там с переносами строк? Юникс или виндовс?     | |||
| 20
    
        vbus 25.03.23✎ 21:32 | 
        для примера, файл hello word, (hw.txt) создан в Windows notepad++
 Windows: certutil -hashfile hw.txt sha1 Хэш SHA1 hw.txt: 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed CertUtil: -hashfile — команда успешно выполнена. Debian 4.19.194-3: sha1sum hw.txt 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed hw.txt | |||
| 21
    
        vbus 25.03.23✎ 21:40 | 
        echo "hello world">hwd.txt
 sha1sum hwd.txt 22596363b3de40b06f981fb85d82312e8c0ed511 hwd.txt file hwd.txt hwd.txt: ASCII text file hw.txt hw.txt: ASCII text, with no line terminators | |||
| 22
    
        DES 25.03.23✎ 22:40 | 
        (21) Я так понимаю что hash SHA1 - он и в Африке SHA1
 Проблема (наверно) в записи в файл, но и это не точно. Прога на серверная, создает хэш пишет в файл, и потом же саа это проверяет. Так что ей без разницы как записано в файл, если она его по одному закону пишет и читает. А вот Клиентской программе как создать файл чтоб сервер скушал... | |||
| 23
    
        DES 25.03.23✎ 22:45 | 
        (19) по правилам канонизации
 а еще данные это одна строка, без ВК или ПС | |||
| 24
    
        ДедМорроз 25.03.23✎ 23:34 | 
        Во-первых,файл должен быть без ByteOrderMark.
 Во-вторых,кодировка должна быть utf-8. В третьих,убрать символы завершения файла,если они есть (код 26). И не забыть,что перевод строки должен быть два символа 13 и 10. При передаче по http именно такие переводы строки в текстовых файлах получаются. | |||
| 25
    
        Garykom гуру 26.03.23✎ 01:06 | 
        я правильно понимаю что пытаешься для маркировки отправить?     | |||
| 26
    
        DES 26.03.23✎ 13:50 | 
        (25) ну типа того
 XML канонизируется на сервере, вычисляется SHA1 (20 байт) , пишется в файл на клиенте. Клиент подписывает хэш - получается файл формата XML. Сервер забирает файл подписи и соеденяет с исходным файлом данных. Потом все хранится в базе серверав виде одного документа. Это точно. Дальше наверно так: При проверке достоверности этого документа отделяется часть подписи , проверяется её достоверность (кидается на клиента - клиент проверяется ,отвечает true/false), Хэш вычисляется из документа и сравнивается с хэш из подписи, если они равны то Ок. | |||
| 27
    
        DES 26.03.23✎ 13:53 | 
        т.е.хэш видно, каким он должен быть.     | |||
| 28
    
        H A D G E H O G s 26.03.23✎ 13:55 | 
        (26) Дичь какая-то. Зачем все так сложно и непонятно. Чего добиться то пытаетесь?     | |||
| 29
    
        Garykom гуру 26.03.23✎ 14:06 | 
        (26) хехе
 было такое когда для МДЛП делал оказалось там надо xml правильно делать т.е. там путаница с кодировками была и XML надо уже канонизированный отправлять т.е. какой отправил, такой и хешить/подписывать надо | |||
| 30
    
        DES 26.03.23✎ 16:48 | 
        (29) я же говорю - канонизирую и хэш считаю. 
 (28) что непонятно? достоверность электронного документа хранящегося на сервере гарантируется ЭЦП клиента. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |