Servizio di automazione per crittografia o decrittografia con openssl

2

Posso creare due servizi di Automator che mi consentono di crittografare o decodificare i file? Quindi farei clic con il pulsante destro del mouse su un file e fare clic su "Encrypt", il file .txt verrebbe crittografato su .enc utilizzando openssl:

pass=$(osascript -e 'tell app (path to frontmost application as text)
text returned of (display dialog "Enter password:" default answer "")
end')
for f in "$@"; do
    printf %s "$pass" | openssl enc -aes-256-cbc -salt -in "$f" -out "${f%.*}.enc" -pass stdin
done

Posso creare una versione di decrypt che mi restituirà il file .txt originale? Oppure posso scrivere un servizio che sa se voglio crittografarlo o decodificarlo e correre nel modo in cui è necessario?

    
posta janniks 28.01.2013 - 15:17
fonte

1 risposta

0

Seleziona il modello di servizio, cambia il tipo di input in file, aggiungi un'azione Esegui script di shell, seleziona il pass input come argomenti e incolla questo script:

pass() {
    osascript - "$1" <<END
    on run args
    tell app (path to frontmost application as text)
    text returned of (display dialog ("Enter password for " & item 1 of args) default answer "")
    end
    end
END
    [ $? != 0 ] && exit 0
}

for f in "$@"; do
    if [[ "$f" == *.enc ]]; then
        pass "$f" | openssl enc -d -aes-256-cbc -pass stdin -in "$f" -out "${f%.enc}"
    else
        pass "$f.enc" | openssl enc -aes-256-cbc -salt -pass stdin -in "$f" -out "$f.enc"
    fi
done
exit 0

Non mostra messaggi di errore specifici, devi eseguire nuovamente il servizio se inserisci una password errata e non c'è modo di utilizzare la stessa password per più file. Sarebbe più semplice farlo da una shell.

    
risposta data 29.01.2013 - 03:29
fonte

Leggi altre domande sui tag