Простой способ кодировать данные на флешке

443
user3178622

У меня есть флэш-накопитель USB и я хочу, чтобы base-64 (или аналогичный) кодировал все файлы / папки (рекурсивно) в определенном родительском каталоге на нем; давайте назовем это «toEncode».

Было бы предпочтительно иметь возможность кодировать и декодировать эти файлы, когда я захочу: декодировать каталог toEncode, изменять любую часть его дочерних папок / файлов, а затем перекодировать его. Я нахожусь на рабочем столе Ubuntu 12.04. Идеи?

0
** Кодировка ** - это не то же самое, что ** шифрование **. Первый переводит данные из одного представления в меньший кодовый набор (например, Unicode в ASCII), а второй переводит (как правило) в двоичную форму, которую невозможно прочитать без какого-либо секретного кода. l0b0 10 лет назад 1
Спасибо, но я знаю разницу и имею в виду кодировать! user3178622 10 лет назад 0
Если да, то каков ** вариант использования **? Я не могу придумать причину, почему вы хотите это сделать, но, может быть, у вас есть? l0b0 10 лет назад 1
Вариант использования не имеет отношения к предыстории, которая не должна использоваться, чтобы загромождать базы данных SU. Мне просто интересно, если это возможно, и если да, то как user3178622 10 лет назад 0
Вам будет намного легче, если вы разбьете свою проблему на составляющие: вы хотите сделать одну операцию рекурсивно для нескольких файлов; операция происходит в кодировке / декодировании base64. Обе части, взятые сами по себе, тривиальны, без знания того, что вы пытаетесь достичь, трудно дать какой-либо значимый совет. Vucar Timnärakrul 10 лет назад 0
Почему бы просто не написать простую программу для этого? Это может быть 200 строк Java, если у вас уже есть подпрограмма Base64. Вероятно, немного сложнее в C. Любой, кто имеет базовые навыки программирования, должен это делать. Daniel R Hicks 10 лет назад 0

2 ответа на вопрос

1
Xavier J

If you're just looking to encrypt data on a flash drive, there are far better tools than trying to do it manually.

http://www.truecrypt.org/

Спасибо @codenoire (+1), но я хочу использовать базовую кодировку 64 ** здесь ... Идеи? user3178622 10 лет назад 0
Вы можете подумать о том, что произойдет, если вам нужно прекратить эту операцию во время обработки целой пачки файлов. Некоторые будут закодированы, а некоторые нет. Если какой-либо из исходного набора файлов на самом деле уже был данными в кодировке base64, у вас будет немало времени, чтобы попытаться восстановиться. Xavier J 10 лет назад 0
1
l0b0

To encode:

base64 file.xyz > encoded.b64 

To decode:

base64 -d encoded.b64 > file.xyz 

For more information:

man base64 

To find such commands, it's useful to search using commands like these:

apropos -r 'base.*64' apt-cache search 'base.*64' 
Огромное спасибо @ I0b0 (+1), вы знаете, если base64 рекурсивен и работает с каталогами? user3178622 10 лет назад 0
Нет, это определенно один файл за раз. Я не думаю, что ваш вариант использования действительно настолько распространен, поэтому он может помочь избежать проблемы [XY] (http://mywiki.wooledge.org/XyProblem), если вы опубликуете более подробную информацию. l0b0 10 лет назад 1
Конечно, нет: в качестве фильтра он работает только с отдельными файлами. Вам придется создать рекурсию самостоятельно, возможно, с помощью комбинации `find` и небольшого сценария. Vucar Timnärakrul 10 лет назад 0