2012-01-20 3 views
5

파일 대신 문자열에서 데이터를 가져 오려면 OpenSSL 명령 줄 도구의 -in 인수를 속일 수 있습니까?OpenSSL 명령 줄 도구 : 문자열의 "-in"인수

일반적으로, 나는 그것을 할 echo 명령을 사용할 수 있습니다 내가 echo 및 파이프없이 그것을 할 수있는 방법이

echo 'test string 1' | openssl enc -aes-256-cbc -a -salt -pass pass:mypassword 

있습니까? -pass pass: 인수와 유사합니까?

미리 감사드립니다. 쉘은 bash는이고 당신의 OS가 지원하는 경우

답변

2

나는이 문제를 갈 수있는 방법을 발견! 대신에 OpenSSL을 대화 형 모드를 가지고 이전과 이후 모두를 통과, 그것은 입력없이 명령을 실행할 수있다 :

openssl enc -aes-256-cbc -a -salt -pass pass:mypassword 

그리고 데이터를 암호화하기 위해 OpenSSL을 기다리고있을 것입니다. 이것은 스트림에도 유용 할 수 있습니다!

이 그럼 당신은 암호화하고 터미널에서 EOT (전송 종료)를 보낼 문자열이나 데이터를 입력하는 것은 일반적이다 ^DControl+D을 그 것이다 stdout 암호화 된 문자열로 출력!

희망은 누군가 도움이되기를 바랍니다.

4

, 당신은 process substitution를 사용할 수 있습니다

openssl enc -in <(echo 'test string 1') -aes-256-cbc -a -salt -pass pass:mypassword 
+0

안녕하세요, 내 터미널에서 잘 작동, 문제는 내가 Objective - C에서 NSTask를 사용하여 도구를 호출하고 거기에 작동하지 않습니다 ... 감사합니다. – TCB13

+0

"/ bin/bash -c ..."를 사용하여 bash에 명령을 제공 할 수 있습니다. 이것은 다른 문제 (보안 구멍 등을 초래하는 쉘 메타 문자)를 가지고 있지만, 프로세스 대체가 가능하게합니다. – Nemo

+0

예 ... "보안 허점"저는 여기 OpenSSL을 사용하고 있습니다 ... 그래서 당신이 이해할 수 있듯이 나는 보안에 관심이 있습니다. (적어도 NSPipe가 제공하는 보안). 감사. – TCB13

관련 문제