Чи може розбиття файлу зламати його?


85

Я просто попросив когось надіслати мені поштовий psdфайл.

Вони відхилилися, посилаючись на те, що ZIP-файл може порушити шрифти .

Я припускав, що зашпаровування файлу є ідеально оборотним, отже, чому він зазвичай використовується. Я думаю, що інша людина невірна.

Чи є якась правда про те, як блискавка порушує вміст її файлів?


51
Можливо, інша людина переплутала зашифровування файлу (без втрат) із стисненням jpeg (втрата), що може зробити тест неприємним.
Метт Х

Я знаю, що колись у мене були проблеми сумісності zip-файлів, тому що формат файлів використовується на всіх платформах ...
jokoon

1
Я, звичайно, переживав певні "патологічні" випадки, коли і вбудовані засоби Winrar, і WinXP зламали файли (десятки тисяч в одному zipfile). Це було 4-5 років тому, і єдине рішення, яке я могла знайти в той час, - це використовувати 7-zip. Як я найкраще пам'ятаю, навіть 7-Zip не міг успішно розпаковувати файли, створені іншими підпрограмами, припускаючи, що помилка була в застібці, а не в розпакуванні. Очевидно, я вирішив використовувати 7-блискавку для обох сторін у виробничій системі.
FumbleFingers

1
@jokoon: Я не впевнений, що можна говорити про формат файлу ..., який використовується на всіх платформах . Існує досить багато різних внутрішніх форматів, які використовуються в zip-файлах, і завжди можливо, що архів може бути створений однією процедурою упаковки, використовуючи формат, який недосконало підтримується якоюсь іншою процедурою, яку ви випадково використовуєте під час розпакування.
FumbleFingers

@Fumble; Але все-таки будь-який гідний архіватор повинен зафіксувати зміну хешу і повідомити про операцію як про помилку - не залишати порушений файл, що лежить навколо.
Фоші

Відповіді:


133

Ні, копіювання файлу не може його зламати. Якщо ваш поштовий файл не пошкоджений, він буде відтворювати ідентичний файл при розпакуванні.

У цьому випадку різниця між шрифтами, встановленими на двох різних системах, може спричинити проблеми, але це абсолютно не пов'язано з процесом zip / unzip.


4
Це я підозрював. Дякую за вашу відповідь.
alex

34
Крім того, деякі формати zip підтримують надмірність, тобто зберігання у форматі zip насправді може бути безпечнішим, ніж зберігання простого файлу.
BlueRaja - Danny Pflughoeft

Ви не повинні швидко це сказати "ні", там є багато реалізацій файлів, що розгортають / розпаковують, рахуючи всі існуючі ОС та інші речі, які можуть створювати поштові файли, я не здивуюся, що деякі реалізації просто не хвилюються до деяких інших .
jokoon

@jokoon: тоді ті файли будуть пошкоджені, що він явно виключає
mbx

3
-1 Теоретично це правда, але на практиці є проблеми з розпакуванням шрифтів Mac на ПК як 0 байт. Це пояснюється тим, що створюється вилка ресурсу. Спробуйте самі та побачите.
Джанго Райнхардт

80

У загальному випадку використання zip не втрачає (припускаючи помилку без виконання), але існує один сценарій, який може застосовуватися до втрати даних: альтернативні потоки даних NTFS. Ця малопоширена функція дозволяє одному файлу мати кілька незалежних наборів вмісту. Більшість кодів коли-небудь бачитиметься безіменний потік, але інші можуть існувати.

Тому; якщо програма вирішила зберігати дані в альтернативному потоці даних NTFS, ваш zip-клієнт не побачить цю частину (її потрібно явно просити, і RAR - це єдиний, хто робить це зараз ).

Але підкреслимо: це використовується дуже рідко, і зазвичай не для таких речей, як PSD. Я підозрюю, що твій друг / соратник просто помиляється.


11
Нічого собі, це абсолютно нове знання для мене.
kizzx2

5
Нове для мене і химерне. Коли файл не файл? Коли його вміст мутує за бажанням. Я чув про гірші порушення, але не багато.
msw

7
@msw - вони не мутують за бажанням; просто - може бути більше одного пакета даних, пов’язаних з одним записом файлу. Майже завжди є рівно одна (вона дуже рідко використовується), але ...
Марк Гравелл

4
Поверніться до ТА! Надто технічна! (просто жартую звичайно;)
Байрон Вітлок


32

Існують обставини, за яких шрифт Mac може бути не тотожним, якщо він застебнутий та розпакований. Це може не порушити його, але всупереч деяким твердженням вище, процес може не надати ідентичний файл.

Тут обговорюються обставини:

http://xahlee.org/UnixResource_dir/macosx.html

http://ask.metafilter.com/59789/How-to-email-my-font

Але коротше:

  1. Якщо вони значно старші шрифти, що містять вилки ресурсів, а користувач має старішу версію Mac OS X, як правило, 10.4 або новішої версії. Спадкові шрифти, як це працює в OS X, хоча вони спочатку були призначені для ОС 9 та більш ранніх версій операційної системи Macintosh. Цілком ймовірно (і, на мій досвід, звичайно), що деякі люди все ще використовують бібліотеку шрифтів, яку вони створили ще 20 років тому. Як правило, це художники та художній керівник. Наприклад, у мене є декілька шрифтів з датами створення 1993 року та сотні із датами створення 1998 року, більшість з ресурсами fork. Звичайно, я мав би перетворити їх на більш сучасні формати або перестати їх використовувати, але давайте поглянемо: коли ви купуєте бібліотеку шрифтів Adobe, ви ніколи не хочете купувати її знову. У мої роки працюючи з арт-директорами з реклами,

  2. Деякі метадані будуть позбавлені певних версій операційної системи. Метадані можуть бути додані до інформаційного поля файлу. Це не порушить файл, але знову ж таки, і zip-unzip не може створити ідентичний файл.

PS: Я маю на увазі, що якщо ви стискаєте файл PSD для доставки іншій особі, він не був сплющений та шрифт не перетворений у контур, а це означає, що ви також могли б доставити файли шрифтів за допомогою PSD щоб особа, яка приймає кінець, могла внести власні зміни у файл. Це звичайна практика.


2
+1 - Я хотів би, щоб я міг дати цьому достатньо очок, щоб підштовхнути його до вершини стеку. У Mac OS є варіанти шрифту Type 1 і TrueType, де дані шрифту зберігаються у вилці ресурсу. Незважаючи на те, що нативні інструменти zip / unzip в ОС можуть вирішувати цю ситуацію витончено, не всі інструменти (зокрема інструменти командних рядків, що переносяться в OS X). Що ще гірше, якщо не стискати шрифти та намагатися надсилати їх електронною поштою чи FTP, це порушить їх!
afrazier

1
Але тут проблема полягає в тому, як ви стискаєте їх, а не чи можете ви. Здається, потрібна програма, яка розуміє вилки ресурсів, і ви повинні знати, як нею користуватися. Чи правильно я це читаю?
uSlackr

@uSlackr, правильно, але проблема зберігається в кінці прийому. Якщо потім архів переміститься під Windows, ви, ймовірно, отримаєте стек непотрібних файлів шрифтів, оскільки хоча Windows (зокрема NTFS) дозволяє використовувати декілька потоків даних у файлі, шрифти в Windows не працюють таким чином. Сам файл PSD, швидше за все, буде портативним між Mac та Windows.
RBerteig

+1 - як приклад, збережіть ваші шрифти Mac на мережевому диску, а потім подивіться, наскільки вони великі на ПК з Windows або Linux - 0 байт! Це ресурсна вилка, що заплутує ідею "це просто працює".
ʍǝɥʇɐɯ

Так, в моїй галузі дуже відомий факт, що шрифти Mac не поширюються добре. Часто користувач ПК розпакує їх 0 байт.
Джанго Райнхардт

14

ZIP використовує контрольну суму, щоб перевірити, чи розпакований файл точно такий, як був перед упаковкою.

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


не має значення, оскільки zip використовує стиснення без втрат (або "зберігання", стиснення може бути вимкнено). контрольна сума полягає лише в тому, щоб мати можливість надати певні відгуки, якщо щось пішло не так.
акіра

13
Пробачте педантичність, але ZIP не використовує контрольну суму - він використовує 32-бітну циклічну перевірку надмірності (також CRC-32 ), яка виявляє набагато ширший спектр помилок.
Беван

5
Термін "контрольна сума" явно став дещо ширшим за значенням, ніж його первісне визначення, якщо люди можуть [і вони] називають результати криптографічних хеш-функцій "контрольними сумами".
Випадково832

9

Тільки якщо вони роблять щось нерозумно, як перетворення текстового режиму на ньому, або якщо десь зламаний zip / unzip, який заплутається вбудованим блискавкою. (Такі помилки вже мали місце в минулому -. Означати може бути , 10 років тому)


4

Zip використовує алгоритм стиснення без втрат, щоб гарантувати, що отримані вами дані будуть ідентичними даних, які ви вводите.

(BTW, Інші технології, такі як jpg, mpeg, mp3, використовують методи втрати для стискання з теорією, що наші очі та вуха не такі чутливі)


0

Єдина правда, яку я міг бачити у висловленні "забивання розбиває шрифти", - це якщо формат файлу PSD має "стиснуту" версію або опцію, яку ви можете ввімкнути в будь-якій програмі, що створює ці файли, і ця опція якось обробляє шрифти по-іншому.

Використовувати будь-яку програму zip має бути добре, за винятком випадків, коли вона баггі.

У відповідь на Marc, також існують потенційні проблеми файлової системи у файлових системах EXT, якщо ви спробуєте скопіювати структуру каталогів, що містить м'які та жорсткі посилання у форматі-блискавці, який не розуміє їх (саме тому я завжди роблю .tar.gz замість цього з .zip там). Крім того, стискання м'яких посилань з відносними шляхами, а потім розпакування їх де-небудь іншим, звичайно, не спрацює, але це не помилка програми zip.


0

Якщо у них виникали такі проблеми раніше (застібаючи пошкоджуючи PSD), то або програмне забезпечення компресора несправне, вони не включають усі необхідні файли на PSD, та / або їх комп'ютери заражені вірусом.

Я б запитав їх, чи були у них подібні пошкодження, переміщуючи файли на usb-диски, просто щоб відкинути цю останню опцію.


0

Просто для додання ще одного застереження для повноти: Zipping може призвести до втрати метаданих файлу, таких як дозволи або час останнього доступу.

Я не вірю, що це взагалі стосується файлів і шрифтів PSD.


Я думаю, що існує нерозуміння концепції алгоритму стиснення без втрат і програм, які виконують це завдання. Засоби без втрат, двійковий потік, який стискається, буде декомпресований на ідентичний вихідний двійковий потік. Метаінформація залежить від ОС і повинна оброблятися ОС та / або додатком.
Бора

1
Дякую, @Bora, але у мене немає такого непорозуміння. Я усвідомлюю, що zipping не впливає на фактичні дані у файлі. Я пропоную "зовнішню" причину, яка може обдурити людей, думаючи, що поштовий індекс пошкодив їхні файли та каталоги. Мене в минулому спіймали відновленням резервних копій, що скорочуються, лише щоб виявити, що мої програми більше не працюють, оскільки вони залежать від метаданих, які я не передавав. (Не основне непорозуміння з мого боку, а лише недогляд.)
Відміщення

0

Zip може зіпсувати імена файлів. Zip як такий не використовує unicode. Кодування імен файлів не визначено, і в Windows використовується поточний локал.

Тому при передачі в іншу систему ваші імена файлів будуть зіпсовані.

Існує розширення до формату Zip, яке використовують більшість останніх програм (winzip з моменту версії 11).

Я вважаю за краще 7z Eversince У мене був блискавка, повна японських імен, не в змозі розпакувати його.


0

Має бути, що поштовий файл повинен точно відтворювати вміст.

Хоча одна пов’язана примітка - відновити дані складніше, якщо поштовий файл пошкоджується , ніж якщо дані були у вихідному форматі. Чому? Багато форматів файлів мають надмірність і розроблені так, що або незначні помилки виправляються, або незначні помилки не є критичними.

Уявіть відеофайл. У більшості форматів, якщо невелика частина стає пошкодженою, ви побачите тимчасове мерехтіння в цій невеликій частині відео, але все одно можете переглядати відео. Але якщо відеофайл застебнутий, можливість виправлення помилок знижується, і залежно від ступеня корупції ви просто не зможете розпакувати файл / переглянути відео. (Це надуманий приклад, оскільки в будь-якому випадку маркувати більшість відеоформатів марно).

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


Як зазначалося вище в коментарі, деякі формати zip-файлів підтримують надмірність. Це може зробити його навіть безпечнішим, ніж оригінальний формат.
DMan
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.