Uso del automático o AppleScript para encriptar / descifrar con OpenSSL -- applescript campo con automator campo con encryption campo con openssl camp apple Relacionados El problema

Using Automator or AppleScript to encrypt/decrypt with OpenSSL


3
vote

problema

Español

Me gustaría saber cómo usar el automático o AppleScript para crear una gota que comprimiría / Descomprimir (tar.gz) y encriptarlo / cifrar / descifrar con archivos openssl y / o directorios que se redujeron en él. El flujo de trabajo sobre lo que hará la gota para encriptar sería algo como esto:

  • Los archivos / directorio se eliminan en la gota
  • los archivos / directorio se comprimen
  • Se presenta un mensaje de contraseña
  • OpenSSL se utiliza para cifrar el archivo, el archivo está renombrado a * .Encrypteded

para descifrar:

    El archivo
  • se elimina en la gota
  • Si el archivo se denomina * .cryryted, se presenta un mensaje de contraseña. Si no, cifrar el flujo de trabajo
  • El archivo
  • está descifrado y renombrado
  • Los archivos no son comprimidos

¿Alguien?

Original en ingles

I would like to know how to use Automator or AppleScript to create a droplet that would compress/uncompress (tar.gz) and encrypt/decrypt with OpenSSL files and/or directories dropped in it. The workflow on what the droplet will do to encrypt would be something like this:

  • Files/directory is dropped on droplet
  • Files/directory is compressed
  • A password prompt is presented
  • OpenSSL is used to encrypt file, file is renamed to *.encrypted

To decrypt:

  • File is dropped on droplet
  • If file is named *.encrypted, a password prompt is presented. If not, do encrypt workflow
  • File is decrypted, and renamed
  • Files is uncompressed

Anyone?

           

Lista de respuestas

2
 
vote
vote
La mejor respuesta
 

En realidad, el automatista no es una mala opción para esto, ya que le permite combinar la secuencia de comandos de AppleScript y Shell sin tener que mezclarlos (lo que lo lleva directamente a escapar del infierno, después de una corta estancia en la citación del Purgatorio) y pasar valores. entre ellos una moda ordenada. Además, además de una aplicación de gotitas, el automatista le permitirá crear un servicio con una excelente integración en el Buscador:

  1. Crea un nuevo flujo de trabajo de Automator.
    • Seleccione "Aplicación" cuando se le solicite qué tipo de flujo de trabajo creará, que le informará una gotita que procese archivos y carpetas que le envíe, o
    • Seleccionar "Acción de la carpeta" y configure "Acepte seleccionado" a "archivos y carpetas": que le brindará un elemento en el Finder Services y el menú contextual de archivos de archivos (todas las traducciones aproximadas, estoy en un sistema alemán ).
  2. Agregue una acción "Ejecutar AppleScript" y edite su contenido de la siguiente manera:

      on run {input, parameters}     try         tell application "System Events" to set thePassword to text returned of (display dialog "Please input your password for OpenSSL encryption" default answer "" with hidden answer)     on error errorMessage number errorNumber         if errorNumber is -128 then quit me -- user has canceled         error errorMessage number errorNumber     end try     return (thePassword as list) & input end run   

    - Esto le pedirá al usuario la contraseña de cifrado y lo pasará como el primer argumento a la siguiente acción.

  3. Agregue una acción "Ejecutar shell script", configurándola para obtener su entrada a través de argumentos (no stdin , como es predeterminado). Asegúrese de que la cáscara esté configurada en ABCDEFGHIJKLMNABCDEFGHIJKLMN2 . Edite los contenidos del script de la siguiente manera:

      [[ -n $1 ]] && password="$1" && shift || exit 0 for f in "$@"; do     if [[ ${f##*.} = "encrypted" ]]; then         fname="${f%.encrypted}"         openssl enc -d -aes-256-cbc -salt -in "$f" -out "$fname".tar.gz -pass pass:$password || continue         tar -xPf "$fname".tar.gz && rm "$fname".tar.gz || continue     else         fname=$([[ -f $f ]] && printf "${f%.*}" || printf "$f")         tar -czPf "$fname".tar.gz "$f" || continue          openssl enc -aes-256-cbc -salt -in "$fname".tar.gz -out "$fname".encrypted  -pass pass:$password && rm -f "$fname".tar.gz || continue     fi done   

    - Esto descifrará y desatar ABCDEFGHIJKLMNABCDEFGHIJKLMN4 archivos, TAR-GZIP y cifre todos los demás archivos y directorios con cifrado AES 256-CBC y la contraseña dada.

CAVEAT EPPTEOR: El manejo de errores es primitivo (básicamente, el abcdefghijklmnfor bucle salta una iteración cuando encuentra un error), no hay registro y no hay falsificación contra Entradas de contraseña incorrectas (es posible que desee preguntar dos veces y comparar los resultados, como lo hace la utilidad Shell). Sin embargo, no debe suceder desastres, ya que los archivos solo se eliminan cuando los pasos anteriores se completan con éxito.

Finalmente, es posible que desee investigar alternativas a la solicitud de una contraseña: un archivo de frase de contraseña en una tecla USB, digamos (use -pass file:/Volumes/volname/passfile en lugar de este Respuesta de la mía en Cambio de pila para formas de hacerlo).

 

Actually, Automator is not a bad choice for this, as it allows you to combine AppleScript and shell scripting without actually having to mix them (which leads you straight to escaping hell, after a short stay in quoting purgatory) and pass values between them an orderly fashion. Also, besides a droplet application, Automator will allow you to create a Service with excellent integration into Finder:

  1. Create a new Automator workflow.
    • either select xe2x80x9cApplicationxe2x80x9d when prompted what type of workflow to create xe2x80x93 that will get you a droplet that processes files and folders you send to it, or
    • select xe2x80x9cFolder actionxe2x80x9d and set xe2x80x9cAccepts selectedxe2x80x9d to xe2x80x9cfiles and foldersxe2x80x9d xe2x80x93 that will get you an item in the Finder Services and context menu of files an folders (all translations approximate, Ixe2x80x99m on a German system).
  2. Add a "Run AppleScriptxe2x80x9d action and edit its contents as follows:

    on run {input, parameters}     try         tell application "System Events" to set thePassword to text returned of (display dialog "Please input your password for OpenSSL encryption" default answer "" with hidden answer)     on error errorMessage number errorNumber         if errorNumber is -128 then quit me -- user has canceled         error errorMessage number errorNumber     end try     return (thePassword as list) & input end run 

    xe2x80x93 this will prompt the user for the encryption password and pass it as the first argument to the next action.

  3. Add a xe2x80x9cRun Shell Scriptxe2x80x9d action, setting it to get its input through arguments (not stdin, as is default). Make sure the shell is set to /bin/bash. Edit the script contents as follows:

    [[ -n $1 ]] && password="$1" && shift || exit 0 for f in "$@"; do     if [[ ${f##*.} = "encrypted" ]]; then         fname="${f%.encrypted}"         openssl enc -d -aes-256-cbc -salt -in "$f" -out "$fname".tar.gz -pass pass:$password || continue         tar -xPf "$fname".tar.gz && rm "$fname".tar.gz || continue     else         fname=$([[ -f $f ]] && printf "${f%.*}" || printf "$f")         tar -czPf "$fname".tar.gz "$f" || continue          openssl enc -aes-256-cbc -salt -in "$fname".tar.gz -out "$fname".encrypted  -pass pass:$password && rm -f "$fname".tar.gz || continue     fi done 

    xe2x80x93 this will decrypt and untar-gzip .encrypted files, tar-gzip and encrypt all other files and directories with AES 256-CBC encryption and the password given.

Caveat Empteor: error handling is primitive (basically, the for loop skips an iteration when it encounters an error), there is no logging and there is no failsafe against wrong password inputs (you might want to ask twice and compare the results, as the shell utility does). Disasters should not happen, though, as files are only deleted when the previous steps complete successfully.

Finally, you might want to investigate alternatives to prompting for a password xe2x80x93 a passphrase file on a USB key, say (use -pass file:/Volumes/volname/passfile instead of -pass pass:$password, skip the Applescript step and remove the first line of the shell script), or storing your password in the OS X keychain and retrieving it programmatically (see this answer of mine on Stack Exchange for ways to do that).

 
 
         
         
1
 
vote

Hice una gotita de AppleScript para comprimir y amplificar; cifrar una carpeta. Es posible que deba cambiar de casos en compresa y amplificador; descomprimir y cambiar el comando para lograr lo mismo.

https://github.com/palaniraja/passarchive

Mira el código: https : //github.com/palaniraja/passarchive/blob/master/passarchive.app/contents/resources/scripts/main.scpt

Mi script es básicamente una versión más bella de

http://hints.macworld.com/article.php?story=20040923120629702 < / a>

 

I built an applescript droplet to compress & encrypt a folder. You may need to switch cases on compress & decompress and change command to achieve the same.

https://github.com/palaniraja/PassArchive

look at the code - https://github.com/palaniraja/PassArchive/blob/master/PassArchive.app/Contents/Resources/Scripts/main.scpt

My script is basically a little more beautified version of

http://hints.macworld.com/article.php?story=20040923120629702

 
 
 
 

Relacionados problema

3  ¿Es posible automatizar la entrada de calificaciones de estrellas y recuentos de juego para una canción idéntica / duplicada en iTunes?  ( Possible to automate entering star ratings and play counts for identical duplica ) 
Estoy en el proceso de reemplazar mi MP3 KPBS de baja calidad y LT; 192 KPBS MP3 en archivos MP3 o ALAC de 320 KPBS en iTunes. En este momento, mi rutina es...

0  ¿De dónde vaya el registro de eventos de AppleScript cuando se ejecuta en Lanzamiento?  ( Where does applescript event log go when run under launchd ) 
O, ¿cómo iniciar sesión desde un AppleScript (guardado como aplicación) y / o ver el registro de eventos? Se pueden encontrar ninguna de las declaraciones d...

0  Sistema de AppleScript Eventos Keystroke roto después de 10.9.4  ( Applescript system events keystroke broken after 10 9 4 ) 
Parece que la actualización de Mavericks reciente ha roto el comando de pulsación de pulsaciones en AppleScript, siempre que mi script llegue a ese punto, se ...

2  Ayuda de Script de correo  ( Mail script help ) 
Reenvío muchos correos electrónicos a Evernote y Nozbe (similar a Omnifocus), ya que trabajo para obtener mi bandeja de entrada a cero. Cuando estoy en mi iPh...

0  Convertir la acción del automático en AppleScript para bash script  ( Converting automator action in applescript to bash script ) 
Acabo de escribir una aplicación automática con AppleScript (junto con un par de líneas de bash) para iniciar FTP con un solo clic. Sin embargo, se ejecuta má...

8  ¿Cuál es la forma más fácil de automatizar el registro en un sitio web?  ( Whats the easiest way to automate logging into a website ) 
Hay este sitio web. Necesito acceder a aproximadamente cada diez minutos. Y aparentemente fue diseñado en 1993, por sátistas. No hay una casilla de verificaci...

1  Sintaxis de comando de terminal de rizo de AppleScript  ( Curl terminal command syntax from applescript ) 
Quiero ejecutar un comando abcdefghijklmncurl en AppleScript que hace lo siguiente ( por esta pregunta / respuesta ): https://superuser.com/a/1054803/4711...

5  ¿Un método programático para deshabilitar todos los servicios de intercambio?  ( A programmatic method for disabling all sharing services ) 
Estoy buscando un método programático para deshabilitar todos los servicios de intercambio en una Mac. Mi preferencia es para un AppleScript o un script de sh...

8  Copiar texto formateado desde una página web a un cuadro de diálogo de entrada de AppleScript  ( Copying formatted text from a web page to an applescript input dialog ) 
Tengo un AppleScript que, simplificado, se ve así: ... display dialog "foo" default answer "" ... Uno de los usuarios de este script se ejecuta León. C...

1  ¿Puedo usar AppleScript para ir al final de un documento de texto?  ( Can i use applescript to go to the end of a text document ) 
Tengo una pregunta muy, muy básica: tengo un pequeño archivo AppleScript que limpia las etiquetas HTML en un documento de TextWrangler. En la última parada, m...

0  Quiero mostrar un archivo en un paquete de AppleScript, pero Shell Devuelve: archivo no encontrado  ( I want to show a file in an applescript bundle but shell returns file not foun ) 
Mi paquete de paquete: ABCDEFGHIJKLMNABCDEFGHIJKLMN2 Mi código: set bashFile to path to resource "reference.txt" set the reference_data to do shell scr...

0  En AppleScript al ingresar contraseña, es un clic requerido  ( In applescript when entering password is a click required ) 
Estoy escribiendo un AppleScript para activar / desactivar una conexión VPN para una computadora. Tengo las cosas más o menos trabajando, sin embargo, tengo...

2  Script de Apple para bloquear la computadora usando golpe  ( Apple script to lock computer using knock ) 
Hay una gran aplicación llamada golpe que le permite desbloquear su Mac haciendo tapping en su teléfono dos veces mientras está en su teléfono proximidad. ...

2  ¿Cómo puedo crear un cuadro de diálogo de entrada de múltiples líneas usando AppleScript?  ( How can i create a multi line input dialog using applescript ) 
¿Cómo puedo crear un cuadro de diálogo de entrada de texto multiline usando AppleScript? La creación de un cuadro de diálogo de una sola línea es simple ... ...

0  ¿Cómo puedo copiar archivos en una unidad montada usando AppleScript?  ( How can i copy files to a mounted drive using applescript ) 
¿De qué manera puedo copiar las carpetas caseras (documentos, imágenes, películas, etc ...) a una unidad montada sin usando la función posix en AppleScrip...




© 2021 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos


Licensed under cc by-sa 3.0 with attribution required.