Como posso criptografar um arquivo grande com o OpenSSL usando chaves RSA?

1

Como posso criptografar um arquivo grande com uma chave pública para que ninguém, além de quem tem a chave privada, possa descriptografá-lo? Eu não quero usar o GPG!

    
por wb9688 28.08.2015 / 09:37

2 respostas

4

Isso pode ser usado para criar um arquivo mypic.png , já que você já tem um par de chaves privado / público em ccbild-key.pem / ccbild-crt.pem . (Você pode encontrar um guia para criar um par de chaves em esta resposta .)

# encrypt
openssl smime -encrypt -aes-256-cbc -binary -in mypic.png -outform DER -out mypic.png.der ccbild-crt.pem

# decrypt
openssl smime -decrypt -binary -in mypic.png.der -inform DER -out mypic.png -inkey ccbild-key.pem

Observe que as configurações podem não refletir a melhor prática na seleção do padrão de criptografia (em particular, se você ler isso no futuro), também pode não ser uma boa escolha em termos de desempenho. (Nós só usamos para arquivos sub-1M em nossa aplicação.)

    
por 28.08.2015 / 09:53
2

Como você deseja criptografar um arquivo - você pode usar o GPG para esse fim .

Além disso, não se preocupe com o formato do arquivo - o arquivo gpg pode criptografar qualquer arquivo.

Instruções breves:

  1. Verifique se gpg-agent está em execução:

    gpg-agent -s --daemon --write-env-file --use-padrão-socket

  2. Gere sua chave:

    gpg --gen-key

Selecione ke padrão, a menos que você saiba o que está fazendo ou seja informado de outra forma por alguém que saiba. Se for solicitado a digitar, digite 1024. (tamanho em bits)

  1. Quando o GPG disser que irá gerar a sua chave, comece a pressionar o teclado aleatoriamente (apenas evite combinações que enviem sinais, como CTRL + Z , etc.

  2. Você está pronto para descriptografar o arquivo. Por padrão, você usa

    gpg -e -r user_id meu_arquivo

Substitua user_id pelo email fornecido durante a geração de chaves. Instruções baseadas no artigo da Universidade de Indiana

    
por 28.08.2015 / 09:46