복호화를 위해 명령줄을 통해 openssl에 암호 인수를 사용하는 방법

복호화를 위해 명령줄을 통해 openssl에 암호 인수를 사용하는 방법

따라서 명령줄 인수를 통해 비밀번호를 전달하는 것은 가장 안전한 방법이 아닙니다. 즉, openssl에 대한 문서에서는 openssl 명령에 비밀번호 인수를 전달하는 방법에 대해 혼란스러워했습니다.

내가하려는 일은 다음과 같습니다.

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d

그러면 암호 해독을 위한 패스 키를 묻는 메시지가 나타납니다. 파일에 비밀번호를 반영하지 않고 단순히 명령에 비밀번호를 제공하고 싶다면 openssl 문서와 인터웹을 검색하여 답을 찾으려고 했습니다. 나는 따옴표가 있든 없든 추가를 시도했지만 소용이 없었습니다 -pass:somepassword.-pass somepassword

마침내 답을 찾았고 다른 포럼에서 비슷한 질문을 하는 사람들을 보았습니다. 그래서 여기에 커뮤니티를 위해 질문과 답변을 게시해야겠다고 생각했습니다.

참고: 저는 openssl 버전 0.9.8y를 사용하고 있습니다.

답변1

문서는 나에게 명확하지 않았지만 답이 있었고 예제를 볼 수 없다는 문제가 있었습니다.

수행 방법은 다음과 같습니다.

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

답변2

예를 들어 두 파일 모두에 및 비밀번호를 설정하는 데 -passin사용 했습니다 .-passout

openssl pkcs12 -in voip.p12 -out voip.pem -passin pass:123 -passout pass:321

비밀번호는 어디에 123있고 어디에 있나요?321

답변3

현재 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

관련 정보