如何欺騙OpenSSL命令行工具的-in
參數以便從字符串獲取數據而不是文件?OpenSSL命令行工具:字符串「-in」參數
通常情況下,我可以用echo
命令做到這一點:
echo 'test string 1' | openssl enc -aes-256-cbc -a -salt -pass pass:mypassword
有沒有一種方法,我可以不用echo
和管?類似於-pass pass:
的說法?
在此先感謝!
如何欺騙OpenSSL命令行工具的-in
參數以便從字符串獲取數據而不是文件?OpenSSL命令行工具:字符串「-in」參數
通常情況下,我可以用echo
命令做到這一點:
echo 'test string 1' | openssl enc -aes-256-cbc -a -salt -pass pass:mypassword
有沒有一種方法,我可以不用echo
和管?類似於-pass pass:
的說法?
在此先感謝!
我找到了一種方法去解決這個!而不是將所有的OpenSSL有一個互動模式之前和之後的,它可以在不輸入運行命令:
openssl enc -aes-256-cbc -a -salt -pass pass:mypassword
和OpenSSL將等待數據進行加密。這對流也是有用的!
然後,你要加密併發送在終端一EOT
(發送結束)的字符串或數據類型是平時^D
Control+D
這將輸出到stdout
加密字符串!
希望這可以幫助別人有一天!
如果你的shell是bash和你的操作系統支持的話,你可以使用process substitution:
openssl enc -in <(echo 'test string 1') -aes-256-cbc -a -salt -pass pass:mypassword
嗨,它從我的終端工作正常,問題是我在Objective-C中使用NSTask來調用該工具,並沒有在那裏工作......謝謝。 – TCB13
您可以使用「/ bin/bash -c ...」將命令提供給bash。這有其他問題(導致安全漏洞的shell元字符等),但它會讓進程替換工作。 – Nemo
是......「安全漏洞」我在這裏使用OpenSSL ...所以你可能明白我關心有一些安全性。 (至少由NSPipe提供的安全性)。謝謝。 – TCB13