¿Son idénticos estos comandos gpg?

1

He encontrado gpg -c < unencrypted_file > encrypted_file este comando desde enlace esta página, pero en el manual de gpg dice gpg --output test.gpg --symmetric test.out algo como esto. No pude encontrar nada acerca de la primera es un alias en la página del manual, así que quiero ver si hay una diferencia y se prueba de esta manera:

crea el archivo de 500Mb primero

  

dd if=/dev/urandom of=./tmpfile bs=1000000 count=500

     

time gpg -c <tmpfile> file1 (19 secs)

     

time gpg --output file2 --symmetric tmpfile (21 secs)

     

time gpg --output file3 --symmetric tmpfile (21 secs)

     

time gpg -c <tmpfile> file4 (20 secs)

el segundo comando me parece un poco más lento, ¿es por coincidencia o son diferentes estos comandos?

editar: la versión gpg es 1.4.20

    
pregunta rugowimola 17.11.2017 - 01:31
fuente

2 respuestas

2

Sí, estos comandos son efectivamente los mismos:

gpg -c < file > file.gpg
gpg --output file.gpg --symmetric file

Primero, -c es solo una abreviatura de --symmetric :

 -c, --symmetric             encryption only with symmetric cipher

También tenga en cuenta que los caracteres < y > se usan en Bash para I / O redirección , no forman parte de la sintaxis de opciones de GPG.

Lo que está sucediendo aquí es que GPG puede recibir información de una entrada estándar o de un archivo especificado como argumento. En lugar de dar el nombre del archivo como un argumento, < FILE solo lo alimenta a través de stdin. Cuando GPG advierte que la entrada se proporciona a través de la entrada estándar, imprimirá la salida a la salida estándar de forma predeterminada en lugar de crear un archivo (a menos que use --output ). Por lo tanto, solo puede redirigir la salida estándar con > FILE para escribir los datos cifrados en un archivo de destino.

    
respondido por el Arminius 17.11.2017 - 01:52
fuente
0
  

el segundo comando me parece un poco más lento, ¿es por coincidencia o son diferentes estos comandos?

Pueden ser equivalentes en funcionalidad de alto nivel , pero claramente no son idénticos; los dos comandos no coinciden exactamente, por lo que no son idénticos.

No es una coincidencia que sean equivalentes en funcionalidad, ya que la decisión de gpg de usar stdin y stdout posiblemente no haya sido involuntaria.

Sin embargo, lo que es una coincidencia es que uno es más lento que el otro. Hay factores en juego aquí, como búfer de archivo , que pueden variar en la especificación y el rendimiento entre las implementaciones de la biblioteca estándar de C y mucho menos en el terminal POSIX. En pocas palabras, uno puede ser más lento en su computadora, pero a una velocidad más rápida o igual en otra configuración de hardware, usando un compilador diferente o una biblioteca estándar.

Desde un punto de vista de seguridad (que es de lo que trata este sitio), debe usar el que le resulte más cómodo. Me imagino que los diseñadores de la interfaz de usuario agregaron ambas interfaces para proporcionar una alternativa para las configuraciones de shell que no admiten canalizaciones, y eso por sí solo no representa un riesgo de seguridad significativo.

    
respondido por el autistic 17.11.2017 - 02:47
fuente

Lea otras preguntas en las etiquetas