php-logoAES ou Padrão de Criptografia Avançada é uma criptografia de chave simétrica de bloco, sendo projetada para que o tamanho da chave possa aumentar, é rápida tanto em software quanto em hardware e disponibilizado livremente de acordo com os termos ANSI.

A criptografia AES anunciada pelo Instituto Nacional de Padrões e Tecnologia dos EUA em 26 de Novembro de 2001, tornou-se um padrão e já é um dos algoritmos mais populares usados para criptografia.

Aqui iremos apresentar um objeto em PHP para efetuar criptografia de chave simétrica de 128 bits, 192 bits e 256 bits.

A implementação é simples com uma chamada ao objeto AES gerando uma nova instância para manipulação de criptografia e descriptografia de dados de acordo com a necessidade do código em questão.

Descrição do Objeto AES

  • Contantes de manipulação de chave
    • AES::KEYGEN_128_BITS
    • AES::KEYGEN_192_BITS
    • AES::KEYGEN_256_BITS
  • Métodos
    • AES::keygen
    • AES::encrypt
    • AES::decrypt

Vamos a um exemplo prático utilizando uma chave de 128 bits para criptografar uma string de dados:


encrypt( "Hello World !!!" );

echo "

".base64_encode($encode)."

";

?>

A saida do código acima será uma “string” codificada:


VVW+z7Infku6AeBYxxPYmg==

O exemplo abaixo irá criptografar e descriptografar um string ou a famoza frase “Hello World !!!” de exemplos de informática, veja:


encrypt( "Hello World !!!" );

// Chave simétrica gerada de 128 bits
echo "

Chave Simétrica 128 bits: ".$key."

";

echo "

Texto criptografado: ".base64_encode($encode)."

";

// Decodificando a string.
$decode = $aes->decrypt( $encode );

echo "

Texto descriptografado: ".$decode."

";

?>

O exemplo acima é bem simples e similar ao primeiro, mas agora reparem que efetuamos uma codificação e deciodificação da string “Hello World !!!” e obtendo a seguinte saida:


Chave Simétrica 128 bits: bd60eb21a6a6034c
Texto criptografado: eCbI4Kcibu3Hyci4+tlXbQ==
Texto descriptografado: Hello World !!!

Como falado no início a implementação é simples, bastando apenas efetuar o download da biblioteca AES aqui e incluir em seu código fonte para utilização.

Download: aes.zip

Download: aes.tar.gz

Download: aes.tar.bz2

Uma coisa muito importante é armazenar a chave em um local seguro para efetuar a criptografia e o reverso (descriptografia dos dados), pois o método AES::keygen apresentado acima gera uma chave diferente a cada vez que é executado.

Espero que tenham gostado e comentem a respeito, até mais.