Как стать автором
Обновить

Зашифрованный ZIP-архив может иметь два правильных пароля

Информационная безопасность *Софт IT-компании


20 августа 2022 года разработчик и пентестер из Positive Technologies Арсений Шароглазов пояснил, почему зашифрованный очень длинным паролем ZIP-файл с использованием алгоритма шифрования AES-256 может в итоге открываться с помощью двух, причём на первый взгляд разных, но правильных паролей.
Читать дальше →
Всего голосов 67: ↑57 и ↓10 +47
Просмотры 28K
Комментарии 52

GitHub отменил изменения метода формирования генерируемых архивов после сбоя

Open source *Git *GitHub *

GitHub внедрил метод формирования автоматически генерируемых архивов «.tar.gz» и «.tgz» на страницах с релизами, но это привело к изменению их контрольных сумм и массовым сбоям в автоматизированных системах сборки. Платформа откатила изменения.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 169
Комментарии 0

Подбор пароля к архиву

Чулан
Давным-давно, во времена BBS и Fido, была такая пошлая мода – ставить пароли на архивы с файлами. Получая файл, Вы не всегда могли его нормально распаковать. Приходилось использовать подручные средства и методом перебора «взламывать» архив. В основном программы были под Windows, а под *-nix системы не попадались реже. Разработчики, как могли, восполнили этот пробел, неспешно совершенствуя проект «rarcrack». Методом перебора (или «грубой силы» / brute force) программа сможет подобрать забытый пароль к файлам, заархивированным zip, 7z или rar.

А встречались ли Вам подобные разработки?

Операционная система: All POSIX (Linux/BSD/UNIX-like OSes)
Тип лицензии: GNU General Public License (GPL)
Страница проекта: sourceforge.net/projects/rarcrack
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 6.9K
Комментарии 15

расширение zip, небольшой хинт

PHP *
В одном из моих проектов широко используется импорт различных данных в формате CSV. Когда-то данных было немного и всех устраивало непосредственно загрузить один-два не слишком больших файла. Со временем данных стало больше, выросли размеры импортируемых файлов и их количество. Решено было загружать файлы в ZIP-архиве: экономим трафик + имеем всего один аплоад вместо несольких.

Для работы с архивом я воспользовался расширением zip. Описывать здесь, что к чему в этом расширении, я здесь не буду, это достаточно подробно описано в документации.

Я расскажу лишь об одной особенности, которая оказалась для меня полезной. При импорте файла, который пользователь загружает в форме, сам по себе ZIP-архив на сервере ни к чему, да и распаковывать его тоже без надобности: потом ведь еще удалять придется. На помощь приходит метод ZipArchive->getStream(). Получаем с его помощью файл-хэндлер и можем спокойно скормить его, допустим, в fgetcsv.

UPD. Наверное, не совсем понятно объяснил. Мне нужны данные из тех CSV-файлов, которые лежат в ЗИПе. И нужны мне эти данные в базе данных, а не в самих ЦСВшках и уж тем более не в архиве. То есть данные из ЦСВшек я импортирую в БД. Поэтому я беру тепленьким временный файл ( $_FILES['userfile']['tmp_name'] ). И прямо не распаковывая его, импортирую все содержащиеся в нем ЦСВшки в БД. После этого PHP сам позаботится о том, чтобы удалить архив, который больше уже не нужен.

UPD. От хабраюзера Adelf: в некоторых случаях (не в моем) следует принимать во внимание факт того, что $_FILES['userfile']['tmp_name'] может быть недоступен из-за open_basedir

Надеюсь, эта информация кому-нибудь окажется полезной.
Всего голосов 30: ↑19 и ↓11 +8
Просмотры 1.4K
Комментарии 21

Полезные сведения о сжатии ZIP-архивов (и документов OpenOffice, которые по сути также ZIP-архивы)

Софт
Johan пишет о том, что возможно улучшить ZIP-сжатие, просто поместив один ZIP внутри другого.

(Читая эту его запись, нетрудно подметить, что именно так при распространении расширений к Файерфоксу работает архив JAR внутри архива XPI.)

Johan пишет также, что можно улучшить сжатие документов OpenOffice (которые являются XML-файлами в ZIP-архивах), если переупаковать их при помощи архиватора 7-Zip, который создаёт ZIP-архивы более компактные, нежели создаваемые прочими ZIP-архиваторами.

(Лично же мне по этому поводу удивительно, почему в открытый OpenOffice до сих пор никто не добавил ещё открытый код 7-Zip. Остаётся лишь диву даваться.)
Всего голосов 16: ↑7 и ↓9 -2
Просмотры 702
Комментарии 9

Когда нужно ZIPовать на лету

Чулан
Задача тривиальная. Делаете какие то отчеты, файлы и хотите дать возможность пользователю их скачать в своем ASP.NET приложении. Почему полезно использовать архивацию?: а) уменьшается скачиваемый объем б) можно отдавать файлы пакетами по несколько.
В .net есть специальный класс для работы с GZip, находится в System.IO.Compression, и называется GZipStream, но он не позволяет хранить несколько файлов в одном архиве, такая специфика. Есть, конечно, энтузиасты, которые при помощи его создают и полноценные zip архивы (правда открывать они, вроде, могут их только при помощи своих программ — по крайней мере, мне попадались только такие).
В .NET 3.0 и выше можно использовать класс ZipPackage из System.IO.Packaging, который находится в сборке WindowsBase.DLL (находится примерно в C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\WindowsBase.dll), не знаю почему данная сборка не лежит в GAC, вот тут есть пример, как это все использовать: Creating Zip archives in .NET (without an external library like SharpZipLib).
Но все же если используете SharpZipLib, как сделать архивирование в памяти? Наверняка, можно сделать через OutputZipStream. Но мне понравился класс FileZip, у которого есть метод Add(), в который можно передать имя файла, или готовый ZipEntry, а так же есть возможность передать объект с типом, унаследованным от IStaticDataSource.
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 586
Комментарии 8

Простейшая генерация odt файла из существующего

PHP *
Как-то раз передо мной стояла задача реализовать генерацию договоров для клиентов с нашего корпоративного сайта.
Сначала задача была решена просто ужасно — был заготовлен html шаблон договора, а пользователю выдавалась конвертация шаблона в pdf. Само собой это выливалось в кучу неудобств, в том числе, если требовалось что-то поменять в договоре.

Следующим решением было генерация odt документа. Это позволило редактировать документ нашим менеджерам независимо от сайта и программистов.
Полностью генерировать с нуля смысла нет. Почему бы не поработать с уже имеющимся файлом (отредактированным в OpenOffice) и просто заменить в нем необходимые элементы?

Этим мы с вами и займемся.
Читать дальше →
Всего голосов 35: ↑33 и ↓2 +31
Просмотры 10K
Комментарии 23

Пользователи и сжатие данных

Сжатие данных *
Я не хочу разжигать очередную священную войну, но комментарии на мой последний пост о «сжатии» в RAR навеяли на некоторое количество мыслей и рассуждений, которые я хочу донести до сообщества. Но перед этим хочу отметить, что я работаю под Windows'ем, поэтому всё ниже изложенное будет касаться именно его. Плюс к прочему попрошу отнестись к топику, как к информации к размышлению, а не как к красной тряпке для быка. Итак, давайте поговорим о форматах сжатия данных с пользовательской точки зрения.
Читать дальше →
Всего голосов 64: ↑39 и ↓25 +14
Просмотры 15K
Комментарии 110

Работа с zip архивами в .NET

Чулан
Недавно мне в моем .NET/С# проекте подребовался функционал создания и распаковки zip архивов. Казалось бы, очень простые операции, учитывая что Windows Explorer уже давно умеет работать с zip файлами и я предположил, что API для работы с ними Microsoft предоставляет.

Отсутствие классов для работы с zip в .NET фреймворк большим сюрпризом для меня не стало, но и не сильно обрадовало. Отсутствие функционала для работы с zip в различных unmanaged API Windows (WinAPI, COM интерфейсы и т.д) меня раздосадовало. На данный момент весь исходный код проекта разработан мной и включать дополнительный third-party .dll файл в дистрибутив из за простейшего функционала мне не хотелось.

исследования и решение
Всего голосов 13: ↑6 и ↓7 -1
Просмотры 4.3K
Комментарии 15

Начинается открытое бета-тестирование свободных шрифтов PingWi Typography (PWT)

Типографика *
На LORе (Linux.org.Ru) сегодня появилась новость о том, что компания PingWin Software (PingWinSoft.Ru) опубликовала объявление о начале открытого бета-тестирования своего пакета свободных шрифтов PingWi Typography (PWT), создававшегося с 2009 года специально для решения проблем с искажением форматирования документов, созданных средствами MS Office, при открытии этих документов в OpenOffice.org.

Гарнитуры, входящие в пакет PWT, разрабатывались «с нуля» в качестве метрических аналогов виндовских шрифтов Tahoma, Arial, Courier, Verdana и Times New Roman (и называются похожим образом: PWT Tahion, PWT Arion, PWT Courant, PWT Verde, PWT Timer); кроме того, шрифты PWT ориентированы на улучшение отображения текста на мониторах с низким разрешением.

Тестовый шрифтовой пакет PWT распространяется по специальной свободной лицензии. Гарнитуры лежат в TTF-виде внутри ZIP-архива.

Обратите внимание: в слове «PingWi» нет конечной буквы «n», но это не опечатка, так и задумано.

Выпуск окончательной версии шрифтового пакета запланирован на сентябрь 2010 года.
Всего голосов 58: ↑43 и ↓15 +28
Просмотры 1.2K
Комментарии 40

ZIP-коды американцев внедрят в заголовки HTTP

Чулан
Производитель маршрутизаторов Juniper Networks планирует этим летом внедрить в свои маршрутизаторы новую технологию от компании Feeva, с помощью которой можно видоизменять заголовки HTTP-пакетов от каждого пользователя, добавляя в них почтовый индекс в девятизначном формате “zip+4″. Провайдеру известен точный почтовый адрес каждого клиента, с которым она заключала контракт — столь ценной информации нет даже у Google.

На первый взгляд глупая инициатива может совершить настоящую революцию на ранке интернет-рекламы, ведь теперь рекламодатели смогут с точностью до улицы вычислять адрес каждого посетителя сайта — и показывать ему узко таргетированную рекламу. Таргетирование по IP-адресу их совсем не удовлетворяло (точность 35-40 км).

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

Более того, в будущем в заголовки пакетов можно будет внедрять и другую персональную информацию, разрешённую законодательством.
Всего голосов 55: ↑47 и ↓8 +39
Просмотры 775
Комментарии 60

История одного бага или как я ZIP паролил

Разработка веб-сайтов *
Это история личного опыта, опыта поиска бага в чужом, старом, неподдерживаемом коде.
Все начиналось как обычно, передо мной стояла простая на первый взгляд задача: сделать упаковку файлов в текущей папке в ZIP архив с определенным паролем на C++/Qt, казалось бы что может быть проще?
Естественно, первый помощник это Google, он и подсказал что существует две Qt библиотеки для работы с ZIP архивами:
QuaZIP и OSDab ZIP, помимо всего, сам Qt поддерживает методы qCompress и qDecompress для упаковки.
Мною было выяснено что методы мне мало подходят, потому что они умеют лишь жать поток, все заголовки и шифрование на совести разработчика. Этот путь был слишком долог и от него я отказался сразу и обратил свое внимание на библиотеки.
OSDaB ZIP пришлось отбросить сразу, не смотря на то, что это отличная библиотека, ее код распространяется только под лицензией GPL, мне же нужно было встроить функционал в проприетарное приложение. К счастью QuaZIP оказался с двумя лицензиями GPL и LGPL. На нем я и остановился. Особо не вникая в его устройство, я набросал простейший класс для работы ним и начал тестировать.

узнать продолжение истории
Всего голосов 134: ↑127 и ↓7 +120
Просмотры 7K
Комментарии 34

Небольшое тестирование двух библиотек для работы с ZIP архивами (язык C#)

.NET *
Архивирование

Не раз приходилось работать с zip архивами с помощью C#, в моих случаях — это было скачивание архива с базой, потом извлекал базу на диск, если это был не текстовый файл, то динамически подключал базу данных, иначе просто считывал необходимые мне данные. Для этих целей я использовал ZipStorer, он мне нравиться тем, что очень просто делает возложенную на него работу, мало весит и является классом, который с минимальным количеством телодвижений оказывается в исполняемом файле. Сегодня я решил попробовать что-то другое, для чего выбрал две библиотеки SharpZipLib и DotNetZip, после чего провел небольшое тестирование, чтобы понять какая из них может мне быть полезной в будущем.
Читать дальше →
Всего голосов 57: ↑41 и ↓16 +25
Просмотры 28K
Комментарии 20

Рекурсивный zip-архив

Ненормальное программирование *
Перевод
Многие хабрапользователи наверняка знакомы с квайнами — программами, выводящими собственный исходный код. Сегодня я хочу показать как сделать интересный вариант квайна — ZIP-архив, который распаковывается сам в себя.

Читать дальше →
Всего голосов 171: ↑168 и ↓3 +165
Просмотры 39K
Комментарии 55

Google Docs Viewer теперь поддерживает форматы ZIP и RAR

IT-компании
Google Docs Viewer теперь позволяет просматривать файлы в форматах ZIP и RAR, помимо 15 других форматов. Если кто-то пришлёт вам ZIP или RAR в Gmail, вы сможете просмотреть содержимое архива в браузере, просто нажав «Просмотреть»:


Читать дальше →
Всего голосов 104: ↑92 и ↓12 +80
Просмотры 7.2K
Комментарии 64

Некоторые функции, которые я использую в своих проектах

PHP *
Доброго времени суток, Под катом предлагаю Вам ознакомиться с функциями на PHP, которые я использую в большинстве своих проектов. В статье мы получим погоду для любого города мира при помощи Google, получим Whois и favicon домена, количество ретвитов определенной страницы и сделаем генератор ссылок на профили в твиттере, сделаем скриншот сайта, соберем css в 1 файл как у яндекса, распакуем zip и преобразуем картинку в ASCII-код.
Прошу под кат
Всего голосов 57: ↑33 и ↓24 +9
Просмотры 2.2K
Комментарии 23

JSZip Создаем .zip файлы

JavaScript *
Очень хороший и простой способ отдать клиенту несколько файлов в zip архиве. Не нагружая и без того нагруженный сервер.
var zip = new JSZip();
zip.add("Hello.txt", "Hello World\n");
img = zip.folder("images");
img.add("smile.gif", imgData, {base64: true});
content = zip.generate();
location.href="data:application/zip;base64,"+content;

Итак давайте разберем, что тут происходит.
Создается экземпляр нашего zip архива, класс JSZip,.
Далее мы можем добавлять в него любые данные, допустим Hello.txt, также можно добавить папку images.
Далее положить в нее smile.gif, все это завернуть, и отдать вам как zip фаил.
Узнать вкусные подробности
Всего голосов 66: ↑60 и ↓6 +54
Просмотры 20K
Комментарии 34

Сжатие ZIP

Клиентская оптимизация *
Здравствуй Хабр!
Данная статья посвящена, как правильно и максимально сжимать файлы в ZIP-архивы. Данную статью я решил написать по той причине, что очень много приложений свои форматы упаковывают именно в ZIP. В данной статье разберем методы сжатия ZIP, приложения для сжатия в ZIP, и как можно улучшить сжатие.
Читать дальше →
Всего голосов 30: ↑13 и ↓17 -4
Просмотры 70K
Комментарии 11

Сравнение библиотек для архивации в .Net

.NET *
Из песочницы
Недавно для моего проекта понадобилась мне библиотека для архивирования. С полгода назад по работе я пользовался библиотекой zlibnet и впечатления остались не очень приятные, так что решил поискать альтернативу. После недолгих поисков наткнулся на обзор библиотек для архивации, которая и сподвигла меня написать этот обзор.
Читать дальше →
Всего голосов 30: ↑24 и ↓6 +18
Просмотры 15K
Комментарии 22