따라서 명령 줄 인수를 통해 암호를 전달하는 것이 가장 안전한 방법은 아닙니다. 즉, openssl에 대한 문서는 openssl 명령에 암호 인수를 전달하는 방법에 대해 혼란 스러웠습니다.
여기 내가하려는 일이 있습니다.
openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d
그러면 암호 해독을위한 패스 키를 묻는 메시지가 나타납니다. 암호를 파일에 에코하지 않고 명령에 암호를 제공하려는 경우 openssl 문서와 인터 웹을 검색하여 답을 찾으려고 시도했습니다. 나는 추가 시도 -pass:somepassword
와 -pass somepassword
와 아무 소용 따옴표없이 모두.
나는 마침내 그 답을 알아 내고 다른 포럼에서 사람들이 비슷한 질문을 보았 기 때문에 커뮤니티에 대한 질문을 게시하고 여기에 답할 것이라고 생각했습니다.
참고 : openssl 버전 0.9.8y를 사용하고 있습니다.
답변
문서는 나에게 분명하지 않았지만 대답이 있었지만 문제는 예제를 볼 수 없었습니다.
방법은 다음과 같습니다.
openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d -pass pass:somepassword
명령 행 명령 구문은 항상 -pass
공백과 그 뒤에 제공하는 암호 유형 (예 pass:
: 일반 암호 구문 및 공백없이 콜론 뒤의 실제 암호 구문)이 뒤 따릅니다 .
또한 설명서에는 다음을 수행하여 다른 암호 문구 소스를 제공 할 수 있다고 지정되어 있습니다.
env:somevar
환경 변수에서 비밀번호를 얻으려면file:somepathname
위치의 파일의 첫 번째 줄에서 비밀번호를 가져옵니다.pathname
fd:number
파일 디스크립터 번호에서 비밀번호를 가져옵니다.stdin
표준 입력에서 읽기
이 질문과 답변을 작성 했으므로 모든 것이 분명해 보입니다. 그러나 확실히 알아내는 데 약간의 시간이 걸렸으며 다른 사람들도 비슷한 시간이 걸리는 것을 보았 으므로이 시간을 줄이고 다른 사람들에게 더 빨리 대답 할 수 있기를 바랍니다. 🙂
OpenSSL 1.0.1e에서 사용할 매개 변수는 -passin
또는 -passout
입니다. 따라서이 예는 다음과 같습니다.
openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d -passin pass:somepassword
답변
예를 들어 두 파일 모두에 암호를 사용 -passin
하고 -passout
설정했습니다.
openssl pkcs12 -in voip.p12 -out voip.pem -passin pass:123 -passout pass:321
어디에 123
그리고 321
암호
답변
현재 Ubuntu 14.04 LTS는 openssl 1.0.1f-1ubuntu2.16과 함께 제공됩니다
이 버전에서 사용할 매개 변수는 -k
예:
openssl enc -aes-256-cbc -e -in some_file.unenc -out some_file.enc -k somepassword