2012-01-20 11 views
5

Come posso ingannare l'argomento -in dello strumento da riga di comando OpenSSL per ottenere dati da una stringa anziché da un file?Strumento da riga di comando OpenSSL: argomento "-in" dalla stringa

Normalmente, potrei usare echo comando per farlo:

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

C'è un modo per farlo senza echo e tubo? Simile all'argomento -pass pass:?

Grazie in anticipo!

risposta

2

ho trovato un modo per andare in giro questo! Invece di passare tutto prima e dopo OpenSSL ha una modalità interattiva, è possibile eseguire il comando senza input:

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

E OpenSSL sarà in attesa per i dati da crittografare. Questo può essere utile anche per i flussi!

quindi digitare la stringa o dati che si desidera crittografare e inviare un EOT (Fine della trasmissione) nel Terminal è usuale ^DControl+D che il risultato sarà al stdout la stringa crittografata!

Spero che questo possa aiutare qualcuno un giorno!

4

Se la shell è bash e il sistema operativo lo supporta, è possibile utilizzare process substitution:

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

Ciao, funziona bene dal mio terminale, il problema è che sto usando NSTask in Objective-C per chiamare lo strumento e che non funziona lì ... grazie. – TCB13

+0

È possibile utilizzare "/ bin/bash -c ..." per inviare un comando a bash. Questo ha altri problemi (metacaratteri della shell che portano a buchi di sicurezza, ecc.), Ma permetterebbe la sostituzione del processo. – Nemo

+0

sì ... "buchi di sicurezza" Sto usando OpenSSL qui ... così come puoi capire, mi interessa avere un po 'di sicurezza. (Almeno sicurezza fornita da un NSPipe). Grazie. – TCB13

Problemi correlati