PHP es uno de los lenguajes de programación más populares gracias a Facebook y Wordpress, pero la popularidad no indica que es el mejor o el más seguro para programar. Sin embargo, muchos proyectos de bajo costo son desarrollados en este lenguaje.

Te dejo una alternativa para encriptar cadenas de texto. Para esta ocasión usaremos OpenSSL.

function openCypher ($action='encrypt',$string=false)
{
    $action = trim($action);
    $output = false;

    $myKey = 'oW%c76+jb2';
    $myIV = 'A)2!u467a^';
    $encrypt_method = 'AES-256-CBC';

    $secret_key = hash('sha256',$myKey);
    $secret_iv = substr(hash('sha256',$myIV),0,16);

    if ( $action && ($action == 'encrypt' || $action == 'decrypt') && $string )
    {
        $string = trim(strval($string));

        if ( $action == 'encrypt' )
        {
            $output = openssl_encrypt($string, $encrypt_method, $secret_key, 0, $secret_iv);
        };

        if ( $action == 'decrypt' )
        {
            $output = openssl_decrypt($string, $encrypt_method, $secret_key, 0, $secret_iv);
        };
    };

    return $output;
};

Lo primero que debemos hacer es cambiar $myKey y $myIV por cadenas de texto complejas para garantizar respuestas encriptadas lo más seguras posible. También pueden cambiar el método de encriptación de $encrypt_method aunque personalmente prefiero AES-256-CBC por ser uno de los más seguros y por la respuesta de cadenas cortas.

$myText = 'This is my secure text';

Veamos como encriptar:

$myText_encrypted = openCypher('encrypt',$myText);
echo $myText_encrypted;
// RESPUESTA: xrgFsPYDTxCBQbxbIteSmSJLaHlaGVmlV5oNIqvW9Sk=

Ahora desencriptemos la respuesta anterior:

$myText_decrypted = openCypher('decrypt',$myText_encrypted);
echo $myText_decrypted;
// RESPUESTA: This is my secure text

La función convierte a SHA256 $myKey y $myIV para triplicar el nivel de seguridad pero es importante destacar que nada garantiza que pueda aparecer alguien que logre romper nuestro código. Lo más importante acá es evitar por todos los medios dejar público a $myKey y $myIV.