AES-CBC-256 especifica completamente um algoritmo de criptografia e um algoritmo de descriptografia. Dado um texto simples, uma chave e um IV, duas implementações da criptografia AES-256-CBC produzirão o mesmo texto cifrado. Dado um texto cifrado, uma chave e um IV, duas implementações do AES-256-CBC produzirão o mesmo texto simples.
O IV é uma string aleatória que é gerada quando você criptografa uma mensagem. Se você criptografar os mesmos dados duas vezes, obterá textos cifrados diferentes porque o IV será diferente. Isto é em parte para que alguém que possa ver apenas dois textos cifrados com o mesmo tamanho não possa detectar se os textos cifrados são iguais. A maioria das ferramentas preenche o IV do texto cifrado, de modo que todos os dados necessários para a descriptografia estão em um lugar (exceto a chave, é claro).
A ferramenta de linha de comando OpenSSL gera um arquivo contendo um cabeçalho de 16 bytes, o IV e o texto cifrado. Este formato é específico para o OpenSSL, mas não depende da plataforma.
A linha de comando do OpenSSL é mais uma demonstração das possibilidades da biblioteca do que uma ferramenta de linha de comando de nível de produção. Eu não recomendo usá-lo, é muito fácil cometer um erro e acabar com dados não recuperáveis ou dados inseguros. Além disso, o OpenSSL não irá ajudá-lo com o gerenciamento de chaves.
Em vez disso, use uma ferramenta destinada a criptografar o arquivo. O GPG foi desenvolvido para essa finalidade. Gere um par de chaves e criptografe os arquivos com gpg -e [email protected] /path/to/file
.