2017-09-16 14 views
-1

次作品(/ binに/ bashの):異なるopensslの応答はbashで

コード:

echo "U2FsdGVkX198UexvhHEtfC7iLbT3awAfla77fvSjZQJ0LC4GmDMeLOghPWXpyy6e" | openssl aes-128-cbc -a -d -salt -pass file:<(echo -n "toy") 
Fri Sep 15 15:20:01 PDT 2017 

しかし、SH(/ binに/ SH)で実行すると失敗します。

コード:

echo "U2FsdGVkX198UexvhHEtfC7iLbT3awAfla77fvSjZQJ0LC4GmDMeLOghPWXpyy6e" | openssl aes-128-cbc -a -d -salt -pass file:<(echo -n "toy") 
sh: 15: Syntax error: "(" unexpected 

これには方法がありますか?

ここからわかるように、パスワードとIDの名前付きパイプを使用しています。私は/ bin/shで作業するには、これ(またはそれに近いバリエーション)が必要です。

OS:すべてのUnixフレーバー。

+1

を私は '' sh'は(...)< '知らないことを前提としています。 – Cyrus

+0

名前付きパイプを使用していません。プロセス置換を使用しています。これは、 'bash'が'/bin/sh'として実行されているときはサポートされていません。 (プロセスの代入が名前付きパイプとして実装される可能性はありません) – chepner

+0

Stack Overflowは、プログラミングおよび開発の質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[スーパーユーザ](http://superuser.com/)や[Unix&Linux Stack Exchange](http://unix.stackexchange.com/)の方が良いかもしれません。 – jww

答えて

0

あなたは、明示的に名前付きパイプを使用することができます。

mkfifo passwd 
printf '%s' "toy" > passwd & 
echo "U2FsdGVkX198UexvhHEtfC7iLbT3awAfla77fvSjZQJ0LC4GmDMeLOghPWXpyy6e" | 
    openssl aes-128-cbc -a -d -salt -pass file:passwd 
rm passwd 
+0

しかし、これはハッカーによって傍受される可能性があります。私はpasswdを1回実行したいと思う。私は削除する必要がある外部ファイルを作成する必要はありません。 – swenson

+0

プロセスの置換は、基盤となるプラットフォームがサポートしているものに応じて、名前付きパイプまたは '/ dev/fd'配下のエントリの' bash'構文にすぎません。 – chepner

+1

パスワードがシェルスクリプトにクリアテキストで格納されているという事実は、プロセス置換の実装方法よりもセキュリティ上のリスクが大きくなります。 – chepner

関連する問題