você deve aplicar a filosofia unix a esta tarefa: uma ferramenta para cada tarefa.
tarar e compactação é um trabalho para tar
e gzip
ou bzip2
, criptografia é um trabalho para gpg
ou openssl
:
Criptografar
% tar cz folder_to_encrypt | \
openssl enc -aes-256-cbc -e > out.tar.gz.enc
Descriptografar
% openssl enc -aes-256-cbc -d -in out.tar.gz.enc | tar xz
Ou usando gpg
% gpg --encrypt out.tar.gz
a variante openssl usa criptografia simétrica, você teria que informar à parte receptora sobre a 'senha' usada (também conhecida como 'a chave'). a variante gpg usa uma combinação de criptografia simétrica e assimétrica, você usa a chave da parte receptora (o que significa que você não precisa informar nenhuma senha envolvida a ninguém) para criar uma chave de sessão e criptografar o conteúdo com essa chave.
se você seguir a rota zip (ou 7z): essencialmente isso é o mesmo da variante openssl, você deve informar a parte receptora sobre a senha.
openssl aes-256-cbc -d -in out.tar.gz.enc -out decrypted.tar.gz
openssl enc -aes-256-cbc -e -in foo.tar.gz -out bar.tar.gz.enc
Se sua intenção é apenas proteger arquivos com senha, use o utilitário zip manual através da linha de comando
-e pede ao utilitário zip para criptografar os arquivos mencionados em
Exemplo de trabalho:
fonte
Aqui estão algumas maneiras de fazer isso. Uma coisa a observar é que, se você usar ferramentas de compactação e criptografia separadas, sempre deverá comprimir antes da criptografia, pois os dados criptografados são essencialmente não compactáveis.
Esses exemplos compactam e criptografam um arquivo chamado
clear_text
.Usando
gpg
O gpg comprime o arquivo de entrada antes da criptografia, por padrão,
-c
significa usar criptografia simétrica com uma senha. O arquivo de saída seráclear_text.gpg
. Um benefício do usogpg
é o uso de formatos padrão do OpenPGP; portanto, qualquer software de criptografia que suporte o OpenPGP poderá descriptografá-lo.Usando
mcrypt
A
-z
opção compacta. Por padrão, isso gera um arquivo chamadoclear_text.gz.nc
.Usando
bcrypt
bcrypt compacta antes de criptografar por padrão, a
-r
opção é para que o arquivo de entrada não seja excluído no processo. O arquivo de saída é chamadoclear_text.bfe
por padrão.Usando
gzip
eaespipe
aespipe é o que parece, um programa que recebe entrada no stdin e gera dados criptografados no stdout. Ele não suporta compactação, então você pode canalizar a entrada através do gzip primeiro. Como a saída vai para o stdout, você precisará redirecioná-la para um arquivo com um nome de sua escolha. Provavelmente não é a maneira mais eficaz de fazer o que você está pedindo, mas a atualização é uma ferramenta versátil, então pensei que valeria a pena mencionar.
fonte
Você pode usar o 7zip para criar seu arquivo protegido por senha. Você pode especificar a senha na linha de comandos (ou em um script) da seguinte maneira:
7z a -p<password> <someprotectedfile>.7z file1.txt file2.txt
O 7zip também pode ler do STDIN da seguinte maneira:
cat <somefile> | 7z a -si -p<password> <someprotectedfile>.7z
Se for obrigatório o uso de arquivos zip, convém brincar com o
-t<type>
parâmetro (por exemplo-tzip
).fonte
Nem tar, gzip nem bzip2 suportam proteção por senha. Use um formato de compactação, como zip, ou criptografe-o com outra ferramenta, como o GnuPG.
fonte
-r
.Crie com:
Ele solicitará uma senha.
Descriptografar com:
fonte