|
почему ПорядокБайтов для ДД не имеет значения? | ☑ | ||
---|---|---|---|---|
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) что непонятно? достоверность электронного документа хранящегося на сервере гарантируется ЭЦП клиента. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |