Gostaria de criptografar um arquivo (usando AES 256) com uma chave que eu mesmo crio e gerencio. Existe algum utilitário de linha de comando do Linux que suporte isso? gpg
não, e eu acho que openssl
também não?
Para sua informação, estou plenamente ciente de que criar e gerenciar chaves você mesmo énãoconsiderado seguro ou melhor prática. No entanto, pelas minhas razões idiossincráticas, é isso que quero fazer. Se tudo mais falhar, posso escrever algo em java para fazer isso, mas se houver um utilitário, prefiro usá-lo.
Responder1
gpg suporta AES256, você só precisa alterar o arquivo de configuração, há opções para definir a cifra preferida e há opções no momento da criptografia.
O gpg desaconselha a configuração da cifra de criptografia, pois ela seleciona automaticamente com base na preferência e, para maximizar a compatibilidade, há diversas cifras suportadas.
aqui você pode ver as cifras suportadas:
mike@mike-laptop4:~$ gpg --cipher-algo name --version
gpg (GnuPG) 2.1.15
libgcrypt 1.7.3-beta
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: /home/mike/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
e novamente com cifras desativadas:
mike@mike-laptop4:~$ gpg --cipher-algo name --version
gpg (GnuPG) 2.1.15
libgcrypt 1.7.3-beta
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: /home/mike/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: AES256, CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
Responder2
Confira o mcrypt com base na sua descrição, ele deve fazer o que você precisa. Pois permite que você use suas próprias chaves. Embora eu não saiba por que você não pode usar o gpg? TinyCA é outra opção se você estiver tentando usar essa criptografia para a web ou software de assinatura.
Você já notou que entende as advertências da autoassinatura, então deixarei isso para seu julgamento.
Responder3
O openssl
utilitário de linha de comando pode fazer isso usando uma senha de um arquivo:
openssl aes-256-ctr -pass file:./passwordfile < file.plain > file.enc
openssl aes-256-ctr -d -pass file:./passwordfile < file.enc > file.plain
Você poderia usar -K
para definir a chave real usada, em vez de derivá-la de uma senha, mas também é necessário definir o IV manualmente, o que não é muito útil.
A página do manual éenc(1)
.