Ошибка в декомпрессии? - PullRequest
       29

Ошибка в декомпрессии?

0 голосов
/ 30 января 2011

Я пишу сканер для веб-сайта.Его ответ закодирован в gzip.

Я не могу правильно проанализировать определенное поле, хотя распаковка прошла успешно.Я также использую htmlagilitypack, чтобы проанализировать его,

проанализированное значение поля является только частью исходного значения в качестве примера: я получаю только / wEWAwKc04vTCQKb86mzBwKln / PuCg ==, тогда как firebug показывает фактическое значениенамного дольше: / wEWBgKj7IuJCgKb86mzBwKln / PuCgLT250qAtC0 + 8cMAvimiNYD

что означает «==» в конце?Я предполагаю, что это ошибка от имени декомпрессора?

Ответы [ 2 ]

0 голосов
/ 30 января 2011

У вас нет проблем с декомпрессией.Страница, очевидно, была правильно распакована.В противном случае ваше программное обеспечение, скорее всего, выдаст ошибку, или вы увидите просто кучу странных символов.

Однако вы получите строку ASCII, которая явно в кодировке Base 64.Знаки равенства в конце появляются, если исходные двоичные данные не кратны 3 байтам.Так что это все идеальные данные Base 64.

Относительно того, почему ваш сканер получает данные, отличные от Firefox с Firebug: я не знаю, но могу изобразить много причин.Это два отдельных сеанса просмотра, и веб-сайт может просто назначить им разные идентификаторы сеанса или каким-то образом записать некоторую историю сеанса.

Во всяком случае, в конце дня я не понимаю вашей проблемы.Что именно вы не можете разобрать?Вы получаете какую-то ошибку?Что вы подразумеваете под полем ?Вы говорите о поле формы HTML?

0 голосов
/ 30 января 2011

Символ = добавляется в кодировке Base64 .

Кодировка следующего предложения

Человек отличается не только по своей причине, но эта особой страсть от других животных, что является похотью ума, что упорство восторга в продолжении и неустанной генерации знаний, превышает короткую страстность любое плотское удовольствие.

вы получите

TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4 =

Символ = может присутствовать только в конце строки Base64. Если вы получаете его, это означает, что вы, вероятно, получаете все символы; наоборот, это не так, поскольку этот символ используется в качестве символа заполнения, и он не всегда является обязательным во всех реализациях Base64.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...