Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/12/2013, 14:29
vazquez_prz
 
Fecha de Ingreso: mayo-2011
Ubicación: México
Mensajes: 7
Antigüedad: 13 años, 7 meses
Puntos: 0
Exclamación Función en localhost (IIS) funciona bien pero en web (Apache) falla

Buenas tardes, busqué y busqué y no logré encontrar nada. Por eso, hoy en mi primer tema les pido su ayuda. Les describo mi problema:

En PHP hice un encriptador que (valga la redundancia), encripta una contraseña, cuando la uso localmente (localhost en IIS) funciona correctamente pero al subir la aplicación al sitio web que está en Apache, ésta función falla dándome otros caracteres.

Les cuento:
///////////////Primer parte
La encriptación se hace de la siguiente manera, recibo a través de $_POST la contraseña la cual, la separo caracter a caracter. Después cada caracter lo paso a ASCII, después cada valor ASCII de cada caracter lo paso a binario y finalmente concateno los caracteres convertidos a binario.

////////////Segunda parte
La cadena de caracteres ahora es 000101010111010110010101010 (por dar un ejemplo), ésta si es menor a 80 la agrego 00000000000. Entonces quedaría 0000000000000000000000101010111010110010101010 (tomando en cuenta que son 80 caracteres).

Ahora mi cadena es 0000000000000000000000101010111010110010101010, ésta la separo de 8 en 8 y la paso a hexadecimal con una función que hice.

Este es la última parte del código que convierte el binario (de 8 en 8) a hexadecimal:

Código PHP:
for ($a 0$a <= 9$a++){
    
$cadena_8bits =  substr($clave_encryptada$a*88);
    
$valor_hex bin_to_hex($cadena_8bits);
    
$clave_encryptada_hex $clave_encryptada_hex.$valor_hex;    

//Y aquí muestro la conversión ya concatenada.
$clave_pwd = strtoupper($clave_encryptada_hex);

La función bin_to_hex es la siguiente:

Código PHP:
function bin_to_hex($hex){
    switch (
$hex) {
    case 
"00000000":
        echo 
"00";
        break;
    case 
"00000001":
        echo 
"01";
        break;
    case 
"00000010":
        echo 
"02";
        break;
    case 
"00000011":
        echo 
"03";
        break;
    case 
"00000100":
        echo 
"04";
        break;
//Continua... pero Foros del web no me dejó ponerla completa.
}

Esto es lo que resulta en cada servidor al convertir la palabra "admin":

Apache: 5D7B5DD36DDCD6CF9AB8

IIS: 5D1A5DB76DD0B2CBF3B8

Espero puedan ayudarme y que no se hayan quedado dormidos con el tema tan largo