Función que utilizo para encriptar y desencriptar cosas en PHP, hay dos modos uno que esta siendo obsoleto a partir de PHP 7.1 y uno que funciona en todas las versiones
class Encrypter {
private static $Key = 'contraseña para encriptar';
private static $method = 'AES-256-CBC';
private static $iv_size = 16;
public static function encrypt($input) {
$output = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5(Encrypter::$Key), $input, MCRYPT_MODE_CBC, md5(md5(Encrypter::$Key))));
return $output;
}
public static function decrypt($input) {
$output = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5(Encrypter::$Key), base64_decode($input), MCRYPT_MODE_CBC, md5(md5(Encrypter::$Key))), "\0");
return $output;
}
public static function encryptSSL($input){
$iv = openssl_random_pseudo_bytes(self::iv_size);
$encryptedMessage = openssl_encrypt($input, self::method, self::Key, 0, $iv);
return $iv.$encryptedMessage;
}
public static function decryptSSL($input){
$iv = substr($input, 0, self::iv_size);
$decryptedMessage = openssl_decrypt(substr($input, self::iv_size), self::method, self::Key, 0, $iv);
return $decryptedMessage;
}
}