Guia rápido de introdução ao uso da criptografia PHP (Ubuntu 12.04 – Apache 2.3)
Baixe o módulo Mcrypt:
$ sudo apt-get install php5-mcrypt
$ sudo service apache2 reloadEdite php.ini. Remova o comentário dessas duas linhas:
[mcrypt]
mcrypt.algorithms_dir=/usr/local/lib/libmcrypt
mcrypt.modes_dir=/usr/local/lib/libmcryptRecarregue o Apache.
$ sudo service apache2 reload
Use a função em seu código. Aqui eu uso a função em uma classe:
<?php
class MyMcrypt
{
private $secretKey;
private $iv;
private $cypher = MCRYPT_RIJNDAEL_128;
private $mode = MCRYPT_MODE_CBC;
public function __construct($key)
{
$this->secretKey = pack('H*', md5($key));
$this->iv = mcrypt_create_iv(mcrypt_get_iv_size($this->cypher, $this->mode), MCRYPT_DEV_URANDOM);
}
public function getSecretKey()
{
return $this->secretKey;
}
public function encrypt($text)
{
return base64_encode(mcrypt_encrypt($this->cypher, $this->secretKey, $text, $this->mode, $this->iv));
}
public function decrypt($text)
{
$string = base64_decode($text);
return mcrypt_decrypt($this->cypher, $this->secretKey, $string, $this->mode, $this->iv);
}
}
$text = <<<EOL
Bacon ipsum dolor sit amet brisket strip steak swine shank tenderloin cow kielbasa. T-bone pork belly prosciutto salami ribeye turducken drumstick ham porchetta. Short loin pancetta pastrami ribeye t-bone leberkas tongue drumstick brisket swine porchetta prosciutto shank jerky shoulder. Bacon beef chuck tongue pork loin t-bone. Frankfurter tenderloin fatback tail jerky prosciutto.
EOL;
const KEY = 'SecretKey2014IsTheYearOfTheSnake'; // 32 chars long
$mcrypt = new MyMcrypt(KEY);
$encryptedText = $mcrypt->encrypt($text);
$unencryptedText = $mcrypt->decrypt($encryptedText);
echo $encryptedText."n";
echo $unencryptedText."n";