답변:
불행히도 물건을 보호하는 쉬운 해결책은 없습니다. 사용 사례를 생각해보십시오. 일반 AES 이외의 것이 더 적합 할 수 있습니다.
매우 간단한 플랫폼 독립적 암호화를 원한다면 openssl 을 사용할 수 있습니다 .
여전히 openssl을 사용하려는 경우 :
암호화 :
openssl aes-256-cbc -in attack-plan.txt -out message.enc
복호화 :
openssl aes-256-cbc -d -in message.enc -out plain-text.txt
암호화 및 암호 해독 base64
의 -a
스위치를 사용하여 openssl 이 메시지 를 -encode하도록 할 수 있습니다 . 이런 식으로 암호문을 전자 메일 메시지에 붙여 넣을 수 있습니다. 다음과 같이 보일 것입니다 :
stefano:~$ openssl aes-256-cbc -in attack-plan.txt -a
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
U2FsdGVkX192dXI7yHGs/4Ed+xEC3ejXFINKO6Hufnc=
암호 및 작동 모드를 선택할 수 있습니다. 정상적인 사용을 위해서는 CBC 모드에서 aes 256을 권장합니다. 사용 가능한 암호 모드는 다음과 같습니다 (AES 만 계산).
aes-128-cbc ← this is okay
aes-128-ecb
aes-192-cbc
aes-192-ecb
aes-256-cbc ← this is recommended
aes-256-ecb
또한보십시오:
참고 :
OpenSSL에서 비밀번호를 묻습니다. 이것은 암호화 키가 아니며 32 바이트로 제한되지 않습니다! 다른 사람과 파일을 전송하려는 경우 공유 비밀이 매우 강해야합니다. 이 사이트를 사용하여 암호의 상태를 알 수 있습니다.
경고 :이 사이트는 귀하의 비밀번호를 서버로 보내지 않지만 언제든지 변경 될 수 있음을 확인했습니다. 이 도구를 개발 도구 / 검사기와 함께 사용하고 강력한 암호를 입력하기 전에 전송하는 것이 있는지 확인하십시오.
/usr/bin/openssl enc -aes-256-cbc -a -salt -in $1 -out ${1}.enc
합니다.
openssl enc
암호가 약한 경우 실제로 안전하지 않은 것을 추가하고 싶습니다 . 이전에의 특정 사용을 권장 openssl enc
했지만 gpg
더 나은 방식으로 KDF를 사용하기 때문에 대신 사용 하는 것이 좋습니다 . 이 답변을 참조하십시오 .
나는 gpg
명령 을 사용하고 싶다 :
암호화 :
gpg --cipher-algo AES256 --symmetric filename.tar.gz
속기:
gpg --cipher-algo AES256 -c filename.tar.gz
암호문을 요구합니다.
해독 :
gpg --output filename.tar.gz --decrypt filename.tar.gz.gpg
속기:
gpg -o filename.tar.gz -d filename.tar.gz.gpg
당신은 또한 추가 할 수 있습니다 cipher-algo AES256
할 ~/.gnupg/gpg.conf
AES256 기본 만들 수 있습니다. (맨 페이지에 따르면 CAST5 )
AES
AES-128을 의미 할 수도 있습니다 . AES-128은 약간 빠르며 덜 안전합니다.
gpg
비밀번호 캐싱을 방지 하려면 어떻게해야합니까?
링크 된 웹 사이트에는 오픈 소스 256 비트 aes 암호화 / 암호 해독 도구가 포함되어 있으며 Java를 통한 MacO, Windows, Linux 등의 다중 플랫폼입니다.
암호화 : aescrypt -e <file>
해독 : aescrypt -d <file>
다음 구문을 사용하여 홈 폴더를 백업하고 암호화 할 수 있습니다.
tar -cvf - /home/<home_folder> | aescrypt -e -p <password_message> - > backup.tar.aes
make
sudo make install
웹 사이트에서 바이너리 또는 소스 코드를 다운로드하십시오.
내가 제안한 많은 제안이 이미이 글에서 제시되었습니다. 기본적으로 openssl은 파일 또는 스크립트를 암호화하는 가장 쉬운 방법입니다. 그러나 일부 플랫폼 에서 모든 버전의 openssl을 사용할 수 없기 때문에 AES-256 을 사용 하지 않는 것이 좋습니다. 대부분의 최신 OS (예 : Linux)가 있습니다. 그러나 AIX 5.3과 같은 다른 제품은 그렇지 않습니다 (HP-UX도 생각합니다). 다른 플랫폼에서 파일이나 스크립트를 사용하려면 AES-128을 사용하는 것이 좋습니다 .
AES-128을 사용하여 어떻게 파일을 "빠르고 쉽게"암호화 할 수 있습니까?
www.ShellScrypt.com 과 같은 사이트 는 openssl AES-128을 사용하여 쉘 스크립트를 암호화 한 다음 암호화 된 스크립트 사본을 실행 가능하게 만듭니다. 스크립트를 사이트에 붙여 넣기 만하면 zip 파일이 생성됩니다. 해당 zip 파일에는 파일의 암호화 된 버전 (스크립트 인 경우 실행 파일)이 포함됩니다. 이것은 당신이 "할 수 있습니다 쉽게 "과 " 편리하게 "당신이 스크립트를 사용하거나하려면 openssl 명령의 여러 가지 복잡하고 혼란 주술을 실행하려는 모든 시스템에있는 모든 패키지 또는 모듈의 요구 사항을 만족하지 않고 파일 / 스크립트를 암호화합니다.
아래는 AES-128을 사용 하는 기본 암호화 / 암호 해독 openssl 명령입니다.
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo precious-content | openssl aes-128-cbc -a -salt -k mypassword
U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z | openssl aes-128-cbc -a -d -salt -k mypassword
precious-content
test@test-VirtualBox:~$
test@test-VirtualBox:~$
Stefano Palazzo의 답변에 덧붙여 base64 명령과 비슷하게 작동하는 작은 bash 함수를 만들었습니다.
파일을 aes256으로 암호화 한 다음 base64로 인코딩합니다. 반대로 할 때는 base64 디코딩, 암호 해독 및 원본 일반 텍스트를 뱉어냅니다.
aes256() {
decodeMe=""
isPipe="$([ ! -t 0 ] && echo "true" || echo "false")"
if [ "$1" = '-d' ] || [ "$1" = '--decode' ]; then
decodeMe="-d"
shift
fi
if [ "$isPipe" = "true" ]; then
read input
printf '%s\n' "$input" | openssl aes-256-cbc -a $decodeMe
exitCode="$?"
else
openssl aes-256-cbc -a $decodeMe -in "$*"
exitCode="$?"
fi
unset isPipe decodeMe input
return "$exitCode"
}
용법:
echo "my string" | aes256
# enter aes-256-cbc encryption password
# Returns: U2FsdGVkX1++e/BhBGlNOzNvarqq7zI13S/hbiKVzXQ=
echo "U2FsdGVkX1++e/BhBGlNOzNvarqq7zI13S/hbiKVzXQ=" | aes256 -d
# enter aes-256-cbc decryption password
# Returns: my string
aes256 file.plain > file.crypt
# enter aes-256-cbc encryption password
aes256 -d file.crypt
# enter aes-256-cbc decryption password
# Spits out original unencrypted file.
openssl aes-256-cbc
보다 짧고openssl enc -aes-256-cbc
작동합니다. 이 매뉴얼 페이지는 다음을 실행하여 사용할 수 있습니다man enc
.ecb
템퍼링해서는 안되는 데이터에는 절대 사용하지 말고 항상 사용하십시오cbc
.-salt
기본값이므로 중복됩니다.-out filename
출력 을 생략 하면 표준 출력에 기록되므로 데이터를 분석해야하지만 디스크에 기록하지 않는 경우에 유용합니다. 다음 명령은 평문의 행 경계를 보여줍니다openssl aes-256-cbc -d -in filename | wc -l
. (다른 사용, 파일 읽기 :openssl aes-256-cbc -d -in filename | less
)