Почему файлы с компьютеров Mac часто шифруются, если их записать на внешний диск, подключенный к системе Windows?
Я объясню, что я имею в виду, потому что на первый взгляд они не выглядят зашифрованными, так как их можно открыть..
но при более близком рассмотрении они могут отображаться зеленым цветом в проводнике Windows
и команда Windows Cipher показывает их как зашифрованные, и их свойства атрибутов отображаются как зашифрованные.
Я не единственный, кто с этим столкнулся, напримерКак составить список зашифрованных файлов в Windows 7? один из пользователей пишет: «... я очищал внешний жесткий диск и наткнулся на 150 зашифрованных файлов. Поэтому я хотел узнать, что это и где они находятся, поскольку я не использую шифрование на своих компьютерах. Оказалось, что это было из нескольких загрузок, которые я могу легко получить. Или из папок «_MACOSX» на моем ПК. Они всегда зашифрованы».
Пример, с которым я столкнулся, — это программа, которую я написал в Rails, просто каталог с именем «scaffoldingtest1», который я создал с помощью команды, rails new scaffoldingtest1
и я скопировал родительский каталог на внешний жесткий диск.
Я также видел несколько PDF-файлов, связанных с Adobe, от пользователей Mac.
И они зашифрованы так, как если бы они были зашифрованы на машине Windows, в том смысле, что их можно просматривать только с этого имени пользователя Windows на этом компьютере. Как показано в свойствах шифрования в Windows. И этот пользователь на этом компьютере может их расшифровать. Но они каким-то образом были зашифрованы таким образом. Если этот внешний диск перенести на другой компьютер Windows, то их нельзя будет прочитать.
И мне интересно, какие настройки OSX вызывают это?
Примечание: поскольку некоторые модераторы имеют тенденцию удалять длинные ветки комментариев и терять важную информацию, вот ссылка на ветку комментариев на данный момент, сохраненная здесь по состоянию на 21.11.2020 20:13 по времени Великобритании.https://pastebin.com/raw/f2Aytv6W
решение1
Причиной этого является известная проблема совместимости со встроенной программой архивации macOS и встроенным распаковщиком в различных версиях Windows.
При использовании инструмента "Сжатие", встроенного в Finder, вы получите ZIP-файл. ZIP-файл содержит, помимо прочего, то, что известно как "внешние атрибуты файла" для каждого файла. Эти атрибуты зависят от хост-системы (т.е. не гарантируется, что эти атрибуты будут одинаково поняты в различных операционных системах).
К сожалению, один из атрибутов, которым инструменты macOS помечают файлы, интерпретируется встроенным инструментом распаковки Windows как пометка файла как «зашифрованного» (что является особой формой шифрования одного файла, встроенной в файловую систему NTFS). Это означает, что при распаковке файлы имеют атрибут «зашифрованный», а их имена отображаются зеленым цветом в проводнике Windows.
Однако существенных недостатков в этом нет, так как вы можете легко открыть Свойства файлов и снять галочку с атрибута "зашифровано". Содержимое файла на самом деле не зашифровано, поэтому файлы можно открыть как обычно.
Эту проблему можно обойти, используя другой инструмент сжатия на Mac или другой инструмент распаковки на Windows.
Технические подробности следующие:
Проблема вызвана тем, что распаковщик Windows неправильно анализирует «внешние атрибуты файла» в заголовке ZIP для каждого файла/папки. Этот элемент заголовка зависит от хоста, поэтому распаковщик должен проверить элемент заголовка файла центрального каталога, известный как «Версия сделана», чтобы узнать, какая операционная система создала файл. Инструмент сжатия macOS правильно сохраняет здесь значение атрибута 3 для «Unix».
К сожалению, инструмент Windows игнорирует это значение и всегда интерпретирует атрибуты файла так, как будто они были созданы в Windows. Проблема «шифрования» возникает из-за того, что ZIP-файлы, созданные в Windows, хранят атрибуты файла в соответствии с константами атрибутов файла (FILE_ATTRIBUTE_<...>), определенными Microsoft. В частности, FILE_ATTRIBUTE_ENCRYPTED, определенный значением 0x4000, означает зашифрованный файл или каталог. Однако системы Unix используют константы POSIX, где S_IFDIR — это атрибут, который означает «это папка» — и обычно определяется как значение 0040000, что эквивалентно 0x4000.