답변:
이 작업에는 유닉스 철학을 적용해야합니다. 각 작업마다 하나의 도구입니다.
tarring 및 압축을위한 일이다 tar
와 gzip
나 bzip2
, 암호 중 하나를위한 일이다 gpg
나 openssl
:
암호화
% tar cz folder_to_encrypt | \
openssl enc -aes-256-cbc -e > out.tar.gz.enc
해독
% openssl enc -aes-256-cbc -d -in out.tar.gz.enc | tar xz
또는 gpg 사용
% gpg --encrypt out.tar.gz
openssl-variant는 대칭 암호화를 사용하므로 수신 측에 사용 된 '암호'(일명 '키')를 알려야합니다. gpg-variant는 대칭 및 비대칭 암호화의 조합을 사용합니다. 수신자의 키 (다른 사람과 관련된 암호를 말할 필요가 없음)를 사용하여 세션 키를 작성하고 해당 키로 컨텐츠를 암호화하십시오.
zip (또는 7z) 경로를 사용하는 경우 : 기본적으로 openssl-variant와 동일하며 수신 측에 비밀번호를 알려야합니다.
openssl enc -aes-256-cbc -e -in foo.tar.gz -out bar.tar.gz.enc
파일을 비밀번호로만 보호하려는 경우 명령 행을 통해 hand zip 유틸리티를 사용하십시오.
zip -e <file_name>.zip <list_of_files>
-e는 zip 유틸리티에 언급 된 파일을 암호화하도록 요청합니다.
작업 예 :
$ touch file_{0,1}.txt # creates blank files file_0 & file_1
$ zip -e file.zip file_* # ask zip to encrypt
$ ENTER PASSWORD:
$ VERIFY PASSWORD:
$ ls file*
이를 수행하는 몇 가지 방법이 있습니다. 주의해야 할 점은 별도의 압축 및 암호화 도구를 사용하려는 경우 암호화 된 데이터는 본질적으로 압축 할 수 없으므로 항상 암호화하기 전에 압축해야합니다.
이 예제는이라는 파일을 압축하고 암호화합니다 clear_text
.
사용 gpg
$ gpg -c clear_text #Compress & Encrypt
$ gpg -d clear_text.gpg #Decrypt & Decompress
gpg는 기본적으로 암호화 전에 입력 파일을 압축하므로 -c
암호와 함께 대칭 암호화를 사용합니다. 출력 파일은입니다 clear_text.gpg
. 사용의 한 가지 이점 gpg
은 표준 OpenPGP 형식을 사용한다는 것입니다. 따라서 OpenPGP를 지원하는 모든 암호화 소프트웨어는이를 해독 할 수 있습니다.
사용 mcrypt
$ mcrypt -z clear_text #Compress & Encrypt
$ mdecrypt -z clear_text.gz.nc #Decrypt & Decompress
-z
옵션은 압축합니다. 기본적으로 이것은이라는 파일을 출력합니다 clear_text.gz.nc
.
사용 bcrypt
$ bcrypt -r clear_text #Compress & Encrypt
$ bcrypt -r clear_text.bfe #Decrypt & Decompress
bcrypt는 기본적으로 암호화하기 전에 압축 -r
하며, 입력 파일이 프로세스에서 삭제되지 않도록하는 옵션입니다. 출력 파일이 clear_text.bfe
기본적으로 호출 됩니다.
사용 gzip
하여aespipe
$ cat clear_text | gzip | aespipe > clear_text.gz.aes #Compress & Encrypt
$ cat clear_text.gz.aes | aespipe -d | gunzip > clear_text #Decrypt & Decompress
aespipe는 stdin에 입력을 받고 stdout에 aes 암호화 된 데이터를 출력하는 프로그램입니다. 압축을 지원하지 않으므로 먼저 gzip을 통해 입력을 파이프 할 수 있습니다. 출력은 stdout으로 이동하므로 원하는 이름으로 파일로 리디렉션해야합니다. 아마도 당신이 요구하는 것을하는 가장 효과적인 방법은 아니지만 aespipe는 다목적 도구이므로 언급 할 가치가 있다고 생각했습니다.
7zip을 사용하여 비밀번호로 보호 된 아카이브를 작성할 수 있습니다. 다음과 같은 방법으로 명령 행 또는 스크립트에서 비밀번호를 지정할 수 있습니다.
7z a -p<password> <someprotectedfile>.7z file1.txt file2.txt
7zip은 STDIN에서 다음과 같이 읽을 수도 있습니다.
cat <somefile> | 7z a -si -p<password> <someprotectedfile>.7z
zip 파일을 사용해야하는 경우 -t<type>
매개 변수 (예 :)를 사용하여 재생할 수 있습니다 -tzip
.
tar, gzip 및 bzip2는 비밀번호 보호를 지원하지 않습니다. zip과 같은 압축 형식을 사용하거나 GnuPG와 같은 다른 도구를 사용하여 암호화하십시오.
-r
.
openssl aes-256-cbc -d -in out.tar.gz.enc -out decrypted.tar.gz