AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 409791
Accepted
Vlastimil Burián
Vlastimil Burián
Asked: 2017-12-09 10:13:11 +0800 CST2017-12-09 10:13:11 +0800 CST 2017-12-09 10:13:11 +0800 CST

Como usar o pv para mostrar o progresso da criptografia/descriptografia do openssl?

  • 772

Preciso criptografar e poder descriptografar arquivos com openssl, atualmente faço isso simplesmente com:

openssl enc -aes-256-cbc -salt -in "$input_filename" -out "$output_filename"

e a descriptografia com:

openssl enc -aes-256-cbc -d -salt -in "$input_filename" -out "$output_filename"

Mas com arquivos grandes, gostaria de ver o progresso.

Eu tentei diferentes variações do seguinte (descriptografia):

pv "$input_filename" | openssl enc -aes-256-cbc -d -salt | pv > "$output_filename"

Mas isso não me pede uma senha. Estou em dúvida de como proceder?

EDIÇÃO1:

Eu encontrei isso tarsobre openssl:

https://stackoverflow.com/a/24704457/1997354

Embora possa ser extremamente útil, não entendo muito.

EDIT2:

Em relação ao tubo nomeado:

Quase funciona. Exceto pelo progresso piscando , que obviamente não posso mostrar e o resultado final ficou assim:

enter aes-256-cbc decryption password:
1.25GiB 0:00:16 [75.9MiB/s] [==============================================================================================================================================================================================>] 100%            
1.25GiB 0:00:10 [ 126MiB/s] [                                             <=>                                                                                                                                                                ]
encryption openssl
  • 2 2 respostas
  • 1792 Views

2 respostas

  • Voted
  1. Best Answer
    MariusMatutiae
    2017-12-09T11:10:22+08:002017-12-09T11:10:22+08:00

    Você deveria tentar

    openssl enc -aes-256-cbc -d -salt -in "$input_filename" | pv -W >> "$output_filename"
    

    Do Manual :

    -W, --espera :

    Aguarde até que o primeiro byte tenha sido transferido antes de mostrar qualquer informação de progresso ou calcular quaisquer ETAs. Útil se o programa para o qual você está canalizando ou do qual requer informações extras antes de iniciar, por exemplo, canalizando dados para gpg(1) ou mcrypt(1) que requerem uma senha antes que os dados possam ser processados.

    que é exatamente o seu caso. Se você precisar ver a barra de progresso, pelo motivo claramente explicado por Weijun Zhou em um comentário abaixo, você pode inverter a ordem dos comandos no pipe:

    pv -W "$input_filename" | openssl enc -aes-256-cbc -d -salt -out "$output_filename"
    
    • 7
  2. Weijun Zhou
    2017-12-09T11:04:36+08:002017-12-09T11:04:36+08:00

    Você precisa de pipe nomeado aqui.

    $ mkfifo mypipe
    $ pv < mypipe > "$output_filename"|(pv "$input_filename" | openssl enc -aes-256-cbc -d -salt -out mypipe)
    

    A saída dos dois pvcomandos será exibida alternadamente na parte inferior da janela tty. Não tenho certeza se é o que você realmente precisa, no entanto. Se você precisar apenas da saída do pvin pv "$input_filename", modifique o comando acima de acordo.

    Editar

    Depois de obter mais informações do OP, agora tenho certeza de que

    pv "$input_filename" | openssl enc -aes-256-cbc -d -salt -out "$output_filename"
    

    é suficiente para atender às reais necessidades do OP.

    • 2

relate perguntas

  • Confuso sobre o sal no arquivo de criptografia openssl

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Matriz JSON para bash variáveis ​​usando jq

    • 4 respostas
  • Marko Smith

    A data pode formatar a hora atual para o fuso horário GMT? [duplicado]

    • 2 respostas
  • Marko Smith

    bash + lê variáveis ​​e valores do arquivo pelo script bash

    • 4 respostas
  • Marko Smith

    Como posso copiar um diretório e renomeá-lo no mesmo comando?

    • 4 respostas
  • Marko Smith

    conexão ssh. Conexão X11 rejeitada devido a autenticação incorreta

    • 3 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Marko Smith

    comando systemctl não funciona no RHEL 6

    • 3 respostas
  • Marko Smith

    rsync porta 22 e 873 uso

    • 2 respostas
  • Marko Smith

    snap /dev/loop em 100% de utilização -- sem espaço livre

    • 1 respostas
  • Marko Smith

    chave de impressão jq e valor para todos no subobjeto

    • 2 respostas
  • Martin Hope
    EHerman Matriz JSON para bash variáveis ​​usando jq 2017-12-31 14:50:58 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Drux A data pode formatar a hora atual para o fuso horário GMT? [duplicado] 2017-12-26 11:35:07 +0800 CST
  • Martin Hope
    AllisonC Como posso copiar um diretório e renomeá-lo no mesmo comando? 2017-12-22 05:28:06 +0800 CST
  • Martin Hope
    Steve Como as permissões de arquivo funcionam para o usuário "root"? 2017-12-22 02:46:01 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST
  • Martin Hope
    Cbhihe Altere o editor padrão para vim para _ sudo systemctl edit [unit-file] _ 2017-12-03 10:11:38 +0800 CST
  • Martin Hope
    showkey Como baixar o pacote não instalá-lo com o comando apt-get? 2017-12-03 02:15:02 +0800 CST
  • Martin Hope
    youxiao Por que os diretórios /home, /usr, /var, etc. têm o mesmo número de inode (2)? 2017-12-02 05:33:41 +0800 CST
  • Martin Hope
    user223600 gpg — o comando list-keys gera uid [ desconhecido ] depois de importar a chave privada para uma instalação limpa 2017-11-26 18:26:02 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve