2 votos

Servicio Automator para cifrar o descifrar con openssl

¿Puedo crear dos servicios Automator que me permitan cifrar o descifrar archivos? Así que haría clic derecho en un archivo y haga clic en "Cifrar", el archivo .txt se cifraría a un .enc usando 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

¿Puedo crear una versión descifrada que me devuelva el archivo .txt original? ¿O puedo escribir un servicio que sepa si quiero cifrar o descifrar y se ejecute de la forma necesaria?

0voto

Fuzzy Purple Monkey Puntos 702

Seleccione la plantilla de servicio, cambie el tipo de entrada a archivos, añada una acción Ejecutar Shell script, seleccione pasar entrada como argumentos y pegue este 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

No muestra mensajes de error específicos, tienes que volver a ejecutar el servicio si introduces una contraseña incorrecta y no hay forma de utilizar la misma contraseña para varios archivos. Sería más fácil hacerlo desde un intérprete de comandos.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X