estoy realizando un proyecto de facturacion y tengo que resolver el siguiente algoritmo, es el Alleged RC4, el pseudocodigo en el cual tengo que basarme esta aqui:
http://www.impuestos.gov.bo/Facturac...AllegedRC4.pdf
yo hice lo sgte pero no sale los mismos resultados, esta es la funcion:
Código PHP:
   <?php
function RellenaCero($cad)
{
   if(strlen($cad)==1)
          $cad='0'.$cad;
          
   return $cad;
}
 
function alleged_rc4($mensaje,$key)
{
    $Index1=0;
    $Index2=0;
    $X=0;
    $Y=0;
    $MensajeCifrado="";
    for ($j = 0; $j <= 255; $j++)
    {
        $state[$j]=$j;
    }
    
    for ($i = 0; $i <= 255; $i++)
    {
        $Index2=(ord($key[$Index1])+$state[$i]+$Index2)%256;
        $aux=$state[$i];
        $state[$i]=$state[$Index2];
        $state[$Index2]=$aux;
        $Index1=($Index1+1)%strlen($key);
    }
    for ($i = 0; $i <= strlen($mensaje)-1; $i++)
    {
        $X = ($X+1)%256;
        $Y = ($state[$X]+$Y)%256;
        $aux1=$state[$X];
        $state[$X]=$state[$Y];
        $state[$Y]=$aux1;
        $NMen=ord($mensaje[$i]) xor $state[($state[$X]+$state[$Y])%256];
        $MensajeCifrado=$MensajeCifrado."-".RellenaCero(dechex($NMen));
            }
     return $MensajeCifrado;
}
?>    Código PHP:
   <?
include('funcion_rc4.php');
$mensaje='++W+G';
$key='SeSaMo';
$res=alleged_rc4($mensaje,$key);
echo $res;
?>    deberia ser: C4-3B-93-A8-25
debe haber un error en el codigo, o algo no estoy haciendo bien, la guia esta en el pdf la segui pero algo esta mal, tal vez el xor ¿?
cualquier ayuda o sugerencia es bienvenida,
gracias de antemano,
saludos.
 
