2012-01-20 15 views
5

OpenSSLコマンドラインツールの-in引数をトリックしてファイルの代わりに文字列からデータを取得するにはどうすればよいですか?OpenSSLコマンドラインツール:文字列の "-in"引数

通常、私はそれを行うにはechoコマンドを使用することができます。

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

は、私がechoとパイプなしでそれを行うことができます方法はありますか? -pass pass:引数に似ていますか?

ありがとうございます!あなたのシェルはbashがあり、あなたのOSがサポートしていれば

答えて

2

私はこの問題を回避移動するための方法を見つけました!代わりに、OpenSSLは、対話型モードを持って前にしているので、すべてを渡すのではなく、入力せずにコマンドを実行することが可能です:

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

とデータを暗号化するためにするためにOpenSSLをお待ちしております。これはストリームにも役立ちます!そして、あなたはターミナルでEOT(送信終了)を暗号化して送信したい文字列またはデータを入力

は、それがstdoutへの出力、暗号化された文字列を意志それControl+D^D普通です!

これはいつか誰かを助けることができますように!

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

関連する問題