Se você estiver usando uma versão estável do gpg, com --cipher-algo AES256
, ela deverá ser criptografada corretamente usando o AES256 (SHA256 é um hash).
Ele escolhe seu próprio sal & A transformação de chaves é rodada automaticamente, assim você não precisa (e não poderia) escolher opções potencialmente fracas. O OpenSSL tem muitas opções, mas seus padrões (especialmente com enc
) podem não ser os mais strongs. Seu Q vinculado realmente faz referência à minha outra resposta sobre OpenSSL vs GPG - basicamente funciona como o gpg, ele já foi testado há décadas, pode ser um grande problema governos, e o comando enc
do OpenSSL ainda pode não ter uma opção para uma contagem de iteração (sua página man 1.1.0f de 2017-11-02 ainda lista esse bug).
Adicione algumas opções (múltiplas) -v
para ver mais detalhes como o sal (772B0F3B94AD86BA abaixo):
$ gpg -vvvvvvvvv test.gpg
gpg: using character set 'utf-8'
gpg: WARNING: no command supplied. Trying to guess what you mean ...
# off=0 ctb=8c tag=3 hlen=2 plen=13
:symkey enc packet: version 4, cipher 9, s2k 3, hash 2
salt 772B0F3B94AD86BA, count 9961472 (211)
gpg: AES256 encrypted data
# off=15 ctb=d2 tag=18 hlen=2 plen=0 partial new-ctb
:encrypted data packet:
length: unknown
mdc_method: 2
gpg: encrypted with 1 passphrase
# off=36 ctb=a3 tag=8 hlen=1 plen=0 indeterminate
:compressed packet: algo=1
# off=38 ctb=ad tag=11 hlen=3 plen=25420
:literal data packet:
mode b (62), created 1519523431, name="test",
raw data: 25405 bytes
gpg: original file name='test'
gpg: decryption okay
Se você omitir --symmetric
, o gpg tentará adivinhar o que você quer dizer, se o arquivo não for criptografado por gpg, ele desistirá / falhará:
$ gpg -vvvvvvvvv --cipher-algo AES256 test
gpg: using character set 'utf-8'
gpg: WARNING: no command supplied. Trying to guess what you mean ...
gpg: no valid OpenPGP data found.
gpg: processing message failed: Unknown system error
Omitir a opção --cipher-algo
deve usar "A cifra simétrica padrão usada é AES-128" (como a página man gpg
diz sobre essa opção), mas os padrões podem variar por versão ou acredito serem substituídos por suas configurações pessoais. Os algoritmos disponíveis do FYI podem ser listados com a opção --version
, como:
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
Você também não precisa da opção --output
, a menos que goste, gpg adicionará & remova uma extensão .gpg
conforme necessário.
- FYI, aqui está um link para RFC2440 descrevendo os elementos de dados usados pelo OpenPGP (pelo menos em 1999, embora eu tenha certeza de que é quase totalmente relevante, especialmente descrições de coisas como String-to-key (s2k) e iterações e sal