PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Não é possível descriptografar usando pgcrypto do AES-256-CBC, mas o AES-128-CBC está OK


MCRYPT_RIJNDAEL_256 não é AES-256. É a cifra Rijndael com um tamanho de bloco de 256 (daí o erro). AES é um subconjunto da cifra Rijndael usando tamanho de bloco de 128 bits e chave tamanhos de 128, 192 e 256 bits. Isso também se reflete no tamanho do IV.

Para criar um texto cifrado criptografado AES-256, você pode usar MCRYPT_RIJNDAEL_128 com o tamanho de chave correto (256 bits são 32 bytes). O _128 postfix indica o tamanho do bloco a ser usado; você ainda pode usá-lo com qualquer tamanho de chave válido de 128, 192 ou 256 bits.

Esteja ciente de que o mcrypt - especialmente a biblioteca C subjacente - não é mais mantido. É melhor usar as bibliotecas de criptografia openssl ou posteriores.

Os wrappers mcrypt e OpenSSL também permitirão tamanhos de chave inválidos, apenas avisando - se você tiver sorte. É claro que isso não é compatível com qualquer biblioteca AES bem definida.