/** * Nombre funcion: ofuscar * Proposito: modifica el parametro de entrata con el algoritmo feiste * Fecha creacion: 12/04/2009 * autor:rac * Modificacion: Rensi Arteaga Copari * fecha: 19/09/2011 * descripcion mod: para permitir ofuscar identificadores que vienes separados por coma dentro de una misma variables * eje id_roels= 1,23,4,5,6 , generalmente usado en arrays cada identificador se ofusca por separado * @param cadena $id */ function ofuscar($id) { $iFeis = new feistel(); $respue = ''; $sw = 0; $ids = explode(',', $id); foreach ($ids as $idk) { if ($idk != '') { if ($sw == 0) { $respue = $iFeis->encriptar($idk . '...' . $_SESSION["_SEMILLA_OFUS"], $_SESSION['key_p'], $_SESSION['key_k'], 1); $sw = 1; } else { $respue = $respue . ',' . $iFeis->encriptar($idk . '...' . $_SESSION["_SEMILLA_OFUS"], $_SESSION['key_p'], $_SESSION['key_k'], 1); } } } return $respue; }
<?php include '../../../lib/lib_control/CTSesion.php'; session_start(); include_once dirname(__FILE__) . "/../cifrado/feistel.php"; $iFeis = new feistel(); echo $_SESSION['key_k'] . "<br>"; echo $_SESSION['key_p_inv'] . "<br>"; echo $_SESSION['key_p'] . "<br>"; $texto = 'hola que tal .... Esta es una prueba 123456.'; $respue = $iFeis->encriptar($texto, $_SESSION['key_p'], $_SESSION['key_k'], 1); echo $respue . "<br>"; $ido = $iFeis->encriptar($respue, $_SESSION['key_p_inv'], $_SESSION['key_k'], 2); echo $ido . "<br>";
/** * Nombre funcion: desofuscar * Proposito: quita la ofuscacion de los identificadores * Fecha creacion: 12/04/2009 * autor:rac * Modificacion: Rensi Arteaga Copari * fecha: 19/09/2011 * descripcion mod: para permitir desofuscar identificadores que vienes separados por coma dentro de una misma variables * eje id_roels= 1,23,4,5,6 , generalmente usado en arrays cada identificador se desofusca por separado * @param cadena $id */ public function desofuscar($id) { //rac 16/11/2011 //no desofusca valores null if ($id != "" && $id != "null" && $id != "id") { $iFeis = new feistel(); $respu = ''; $idso = explode(',', $id); $sw = 0; foreach ($idso as $idr) { $ido = explode("...", $iFeis->encriptar($idr, $_SESSION['key_p_inv'], $_SESSION['key_k'], 2)); if ($ido[1] != $_SESSION["_SEMILLA_OFUS"]) { throw new Exception('Un identificador a sido distorcionado', 2); } else { if ($sw == 0) { $respu = $ido[0]; $sw = 1; } else { $respu = $respu . ',' . $ido[0]; } } } return $respu; } else { return $id; } }