Для симметричного шифрования вы можете использовать enc(1)
который является частью openssl. Чтобы зашифровать файл с помощью шифра aes256-xts:
openssl enc -aes-256-xts -in foo.txt -out foo.txt.enc
И расшифровать это:
openssl enc -d -aes-256-xts -in foo.txt.enc -out foo.txt
Довольно легко, а?
Еще одна полезная особенность заключается в том, что он поддерживает base64
что означает, что он будет использовать только символы ascii. Просто добавьте -a
в список аргументов, а затем посмотрите на зашифрованный файл.
enc(1)
- универсальная программа. Я часто использую его, когда быстро хочу скопировать файл или небольшой сжатый tar-архив с одного экрана терминала на другой, я просто использую только base64
.
Допустим, я хочу быстро скопировать каталог /home/drumfire/test
который содержит несколько файлов и не может использовать scp
или другие инструменты. Тривиально запустить это через программу сжатия и закодировать это:
tar cf - /home/drumfire/test | xz -9ec | openssl enc -a
Результатом является капля текста ascii. Я выбираю, чтобы скопировать его, а затем в целевой системе я могу просто сделать:
openssl enc -a -d | xz -dc | tar xvf -
В этом случае Openssl
будет ждать ввода от stdin
поэтому я нажимаю Shift+Insert, который вставляет текст, затем я нажимаю CTRL+D два раза и вуаля, он извлекает.
Аккуратные вещи. B-)