Я знаю, как Вы чувствуете; я попробовал столько различных дистрибутивов прежде, чем получить ощущение различий, и я продолжаю пробовать новые, обычно в виртуальной машине или запасном разделе.
Я действительно не нахожу, что Gnome является медленным и чрезмерно увеличенным в размерах, но я не слишком доволен направлением, это недавно пошло с оболочкой Gnome 3. Gnome довольно прост по сравнению с KDE, но совсем не как настраиваемое, и это становится менее настраиваемым, это кажется.
Я нахожу, что KDE излишество, и я никогда не проводил достаточно времени для чувствования себя довольного им. Это имеет много опций, виджетов, и т.д., и конечно, некоторые люди любят его за это. KDE может также иметь большую часть множества (собственных) доступных приложений, но я не использовал его достаточно для реального знания.
Из Вашего сообщения я думаю, что необходимо посмотреть на XFCE. Это наименее чрезмерно увеличено в размерах из главным образом полнофункциональных сред без большого количества отдельно оплачиваемых предметов. Это выполнит большую часть того же самого, которое выполняет Gnome, поскольку это использует тот же инструментарий GTK, я думаю.
Однако возможно запустить приложения KDE с помощью Gnome, и т.д. для покупки Вас должно также установить любые библиотеки поддержки, и т.д. требуются для них. Большому количеству людей не нравится делать это, но если у Вас есть много дискового пространства, оно прекрасно, вероятно.
Будучи новым, я рекомендовал бы придерживаться основного дистрибутива как Fedora, Ubuntu, Debian, и т.д., поскольку стороннее программное обеспечение, более вероятно, будет иметь легкую установку для их программ.
Я должен добавить, что это - весь дело вкуса больше, чем что-либо еще, если Вы не добавляете еще некоторые критерии, которые могли бы дифференцировать различия больше.
С недавним выходом Linux (или любая система с недавним GNU coreutils), звонить split --filter
.
<decrypted.bin split -b 16 --filter='openssl --args "$FILE" >> decrypted.bin'
Независимо-зашифрованные-блоки походят на ЕЦБ, таким образом, openssl enc -d aes-128-ecb
может быть тем, что Вы после.
Если у Вас есть странный режим, который не поддерживает openssl инструмент командной строки, можно быть более обеспеченным использованием инструмента, который поддерживает тот странный режим. (Если Вы описываете режим, я могу предлагать предложения.)
Вы, надо надеяться, знаете, что уже, но если Вы не используете стандартный режим (кроме ЕЦБ), Ваше шифрование, вероятно, небезопасно.
Я полагаю, что можно использовать вместо этого dd
dd позволяет Вам читать из файла и отправил вывод туда, где Вы хотите указать также blocksize.
из страницы справочника
Копия ОПИСАНИЯ файл, преобразовывая и форматируя согласно операндам.
bs=BYTES read and write up to BYTES bytes at a time
Таким образом, я предполагаю это
dd if=encrypted.bin bs=16|openssl --args >> decrypetd.bin
должен работать на Вас. Хотя я не сделал протестировал его с openssl.
Обновление на основе комментария от jordamn (благодарит jordamn),
Встроенный путь не передает все по каналу широкая горная долина в openssl, вместо этого передает 16 частей блока по каналу.
#Get the file size in bytes
total=`ls -l encrypted.bin|awk '{print $5}'`
echo $total;
ret=0;
i=0;
counter=0;
while [ $counter -lt $total ]
do
#counter to know how many block we read
counter=$(($i * 16))
#skip is the number of block based on our setting to skip
dd if=encrypted.bin skip=$i ibs=16 bs=16 count=1 status=none |openssl --args >> decrypit.bin
i=$(($i+1))
done
bs=8
так как весь вывод будет отправлен в openssl в одном вызове.
– jordanm
08.07.2013, 15:56
dd
. Не передавайте по каналу к нему. unix.stackexchange.com/questions/17295 / …
–
08.07.2013, 16:13
count=x
, поскольку это считает неполные блоки.
– frostschutz
08.07.2013, 18:51
dd skip
то же, которое я сделал бы (хотя я не уверен в вопросе здесь). Но вместо ls | awk
необходимо использовать stat
с %s, и вместо str=dd skip; echo $str | openssl
необходимо просто использовать dd skip | openssl
непосредственно. О, и Вы, вероятно, увеличиваете i
неправильно (если dd
входит в шаги 16 байтов, я должен быть увеличен 1 вместо 16, нет?). Серьезно, кто шифрует что-нибудь этот путь?
– frostschutz
08.07.2013, 18:54
Другой способ распасться и буферизовать поток может состоять в том, чтобы использовать xxd - make a hexdump or do the reverse
с -c
и -p
опции.
# test
n=0
printf '%s' {1..1000} |
xxd -p -c 16 |
while IFS="" read -r hexstr; do
n=$((n+1))
printf '%s\n' "$n: $hexstr size: $((${#hexstr}/2)) bytes"
printf '%s' "$hexstr" | xxd -p -r | wc -c
done
# split up standard output stream in 16 byte blocks to be decrypted
xxd -p -c 16 encrypted.bin |
while IFS="" read -r hexstr; do
printf '%s' "$hexstr" | xxd -p -r | openssl --args >> decrypted.bin
done
Способ разделить канал на 16-байтовые последовательности без цикличного выполнения через несколько каналов может состоять в том, чтобы использовать инструменты, такие как cstream или mbuffer (в дополнение к уже упомянутому split -b 16
подход).
cstream
, например, подобно dd
. Это не только имеет a -b num
опция установить размер блока, используемый для чтения-записи, но также и a -B num
опция буферизовать входной блок до num
байты перед записью. -n num
опция ограничивает общий объем данных, которые будут скопированы в num
байты.