Маленькая памятка, как зашифровать архив tar.
Иногда нужно файл или архив для заказчика зашифровать.
Сперва посмотрим какие шифры доступны
$ openssl enc -list
Я выбрал шифр aes-256-cbc
$ tar czvf test.tar.gz test | openssl enc -aes-256-ctr -pbkdf2 -a -in test.tar.gz -out test.tar.gz.aes256 enter aes-256-ctr encryption password: Verifying - enter aes-256-ctr encryption password:
Появится шифрованный архив test.tar.gz.aes256.
openssl рекомендует использовать при шифровании iter или pbkdf2.
Вариант с использованием iter.
-iter число, при указании большего числа шифрование проходит не быстро, зависит от процессора вашего.
У меня заняло, окало 25 секунд.
Указанное число итераций для пароля при получении ключа шифрования.
Так же опция включает алгоритм pbkdf2 для получения ключа.
$ tar czvf test.tar.gz test | openssl enc -aes-256-ctr -a -in test.tar.gz -out test.tar.gz.aes -iter 80000000 enter aes-256-ctr encryption password: Verifying - enter aes-256-ctr encryption password:
Расшифровка
$ openssl enc -aes-256-ctr -pbkdf2 -d -a -in test.tar.gz.aes -out test.tar.gz enter aes-256-ctr decryption password:
Пример с использованием iter.
$ openssl enc -aes-256-ctr -d -a -in test.tar.gz.aes -out test.tar.gz -iter 80000000 enter aes-256-ctr decryption password:
Пример как зашифровать директорию, для шифрования файлы почти также (zip —encrypt my_arc.zip test.txt).
$ zip --encrypt -r my_arc.zip test/ Enter password: Verify password: adding: test/ (stored 0%) adding: test/serv.png (deflated 6%) adding: test/hosts (deflated 59%) adding: test/10000вСюр1919.jpg (deflated 0%) adding: test/Рябченко/ (stored 0%) adding: test/Рябченко/Рябченко. Боны России.pdf (deflated 1%) adding: test/check_domain.sh (deflated 94%)
Дешифровка.
Так как zip по умолчанию при создании архивов использует кодировку IBM437, будут проблемы с отображением кириллиц.
$ unzip secure.zip Archive: secure.zip creating: test/ [secure.zip] test/serv.png password: inflating: test/serv.png inflating: test/hosts inflating: test/10000????????1919.jpg creating: test/????????????????/ inflating: test/????????????????/????????????????. ???????? ????????????.pdf inflating: test/check_domain.sh
Или
$ bsdtar --option hdrcharset=cp866 -xf my_arc.zip Enter passphrase:
Вот как бы и вся инструкция как зашифровать архив tar.