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.