miércoles, 10 de julio de 2013

Encriptar y desencriptar cadenas con PHP

Crear una función para encriptar - desencriptar (encrypting two way) usando PHP

Útil para enmascarar urls, variables por post, get, datos, números de tarjetas de crédito, etc.

Puedes usarla para programación scriptera, orientada a objetos, como helper en algún framework, tales como CodeIgniter, Zend, Cake, Yii, etc.

Bueno, aquí vamos:

<?php
function _enc($s)
{
    $str = (string) $s;
    
    if ('' == trim($str)) {
        return '';
    }
    for ($i = 0; $i < strlen($str); $i++) {
        $r[] = hexdec(decoct(ord($str[$i]) + 3));
    }

    return implode(',', $r);
}

function _dec($s)
{
    $str = (string) $s;
    
    if ('' == trim($str)) {
        return '';
    }
    $s = explode(',', $str);
    for ($i = 0; $i < count($s); $i++) {
        $s[$i] = chr(octdec(dechex($s[$i])) - 3);
    }

    return implode('', $s);
}
?>

El artículo original de este código viene desde www.hawkee.com/snippet/5086/, yo le añadí doble cifrado, uno en octal y el resultado obtenido lo paso a hexadecimal, esto lo hice porque si lo dejaba en decimal es bien fácil encontrar que los caracteres corresponden a códigos ASCII y cualquiera podría descifrar el contenido.

Espero les sea de utilidad.

No hay comentarios:

Publicar un comentario

Datos personales

Mi foto
Podrás encontrar códigos recursos y artículos sobre PHP, JavaScript, jQuery, MooTools, Ajax, CSS, HTML, UML, RUP, AUP, XP (eXtreme Programming), Six-Sigma, CMMI, FrameWorks, Zend Framework, Magento, CodeIgniter, CakePHP, Joomla 1.5, Doctrine, Active Record, ORM, POO, MVC, MySql, PostgreSql. Este espacio está destinado a ayudar y compartir un poco de lo mucho que he recibido de la comunidad en la Red.