|
Внутренне устройство ХранилищеЗначений | ☑ | ||
---|---|---|---|---|
0
Adept
15.01.15
✎
20:30
|
Пытаюсь разобраться во внутреннем устройстве хранилища значений, Серелизую хранилище в хмл, если с обычным хранилищем все просто достаточно, то со сжатием проблемы. У кого нить есть предположения какой алгоритм там используется?
|
|||
1
zulu_mix
15.01.15
✎
20:32
|
deflate
|
|||
2
Adept
15.01.15
✎
20:37
|
(1) Всмысле zlib? Не похоже ...
|
|||
3
zulu_mix
15.01.15
✎
20:38
|
да все похоже. он там в чистом виде.
|
|||
4
ДенисЧ
15.01.15
✎
20:39
|
zip там используется
|
|||
5
zulu_mix
15.01.15
✎
20:39
|
не веришь - попробуй сжать файл одинцом и он прекрасно распакуется
|
|||
6
Adept
15.01.15
✎
20:44
|
(5) Да не я верю, я на это и расчитовал, но что то модуль zlib питоновский не берет серелизованную строку
|
|||
7
zulu_mix
15.01.15
✎
20:45
|
(6) наверняка одинцы свой хидер пихают. найди его, отрежь и все прекрасно распакуется
|
|||
8
Armando
15.01.15
✎
22:00
|
(0) "...то со сжатием проблемы"
какие? |
|||
9
Adept
15.01.15
✎
22:07
|
(8) Строка zlib не распаковывается, запакованная на python ни какой частью не похожа на запакованную 1с
|
|||
10
Jaap Vduul
15.01.15
✎
22:12
|
||||
11
zulu_mix
15.01.15
✎
22:15
|
собственно то что я и говорил, подтвердил ава
"..Подсмотрел у себя в исходниках Tool_1CD. Если хранилище начинается с 01 01 - хранилище не сжато. Если с 02 01 - хранилище сжато. в таком случае следом идут 16 байт некой сигнатуры (зачем это - не знаю) 0x53,0x4b,0x6f,0xf4,0x88,0x8d,0xc1,0x4e,0xa0,0xd5,0xeb,0xb6,0xbd,0xa0,0xa7,0x0d Возможно, это не сигнатура, и что-то она означает, однако, других значений я не встречал. А вот уже следом за этой сигнатурой идет собственно сжатый deflate-ом поток. Т.е. нужно взять все байты, начиная с 19-го и до конца файла и распаковать." |
|||
12
Adept
15.01.15
✎
22:20
|
(11) Если не запаковано то с 3 по 10 счетчик размера, пошел проверять ...
|
|||
13
Adept
15.01.15
✎
23:24
|
аа голову сломал уже, народ, если есть на чем протестировать. В хранилище отправляем строку с символом 20 (одним)
в закодированном виде AgFTS2/0iI3BTqDV67a9oKcN42GAgPe791crBSvpKIko1QIA в раскодированном b64 в 16 битном формате b'0201534b6ff4888dc14ea0d5ebb6bda0a70de3618080f7bbf7572b052be9288928d50200' заархивирована таже строки средствами питона b'789c13010000150015' в раскодированной строке, нет ни одной подстроки которую можно было бы раскодировать |
|||
14
Adept
15.01.15
✎
23:25
|
+(13) в раскодированной строке, нет ни одной подстроки которую можно было бы разархивировать
|
|||
15
H A D G E H O G s
15.01.15
✎
23:48
|
(13) И что тебя смущает?
|
|||
16
H A D G E H O G s
15.01.15
✎
23:49
|
У тебя 2 разных набора данных сжаты. Возможно даже разными размерами словаря (хотя на небольших данных скорее всего это роли не играет).
|
|||
17
МихаилМ
16.01.15
✎
00:03
|
||||
18
Asmody
16.01.15
✎
00:04
|
(13) с каким "символом 20"? В 8ке же строки внутре в юникоде, не?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |