Ver Mensaje Individual
  #7 (permalink)  
Antiguo 12/04/2020, 18:27
julslash
 
Fecha de Ingreso: febrero-2010
Ubicación: valencia
Mensajes: 146
Antigüedad: 14 años, 10 meses
Puntos: 3
Respuesta: problema para mostrar ascii

listo ahora si me funciona hice lo siguiente
cree un for para recorrer los caracteres y aplicarle la funcion que me diste y adicional le paso un segundo valor a la funcion que es la posicion del vector
el resultado lo concateno a una variable que luego puedo hacer la comparacion con la otra variable para determinar si ingreso bien el valor

Código PHP:
  for( $d 1$d <= strlen(rand_string($datos)); $d++) 
    {    
    
$vector2[$d] = representacionAnsiHorizontal2(rand_string($datos),$d);    //// CLAVE RESULTADO
    
$resultado2.=$vector2[$d];
    
    }

 echo 
$resultado2


la otra funcion que originalmente era asi la modifique de la siguiente manera


Código PHP:

function representacionAnsiHorizontal2($cadena)

{

    
$array_de_chars=(unpack('C*',$cadena));
    foreach(
$array_de_chars as $char)
    {
  
       echo 
str_pad$char[$c] ,5,' ');
    }
    





Código PHP:

function representacionAnsiHorizontal2($cadena,$c)

{
    
$array_de_chars=(unpack('C*',$cadena));
      return 
$array_de_chars[$c];
    


este es el resultado de lo que hice en una sola pagina, aquí ya me funciona todo, tuadmin te agradezco mucho la ayuda, me fue de muchísima utilidad toda la información que me enviaste



Código PHP:

<!DOCTYPE html>
<html lang="en">

<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />

    <title>Codigo Pierrot</title>

</head>
<body>
    



<?php


$serverName 
'HPLAPTOP-PC';
            
$connectionInfo = array("Database"=>"Master","UID"=>"sistemawebadmin""PWD"=>"123456asfd""CharacterSet"=>"UTF-8");

            
$connesqlsrv_connect($serverName,$connectionInfo);
            if (
$conne)
            {
                 echo 
"conexion exitosa";
                       echo 
"<br>";     
                      echo 
"<br>";
            } else {
              echo 
"Fallo en conexion";
              die(
print_r(sqlsrv_errors(),true));
            }


//------------------------------------------------------
$clave=''// la clave final es la concatenación de la contraseña + prioridad + mapa
$buscar=''
$prioridad ='';// debe ser de 3 caracteres agregando espacios en blanco desde la izquierda
$mapa=''// debe ser maximo 4 caracteres agregando espacios en blanco a la derecha
$codigolog=''// id del usuario
$field=''// variable para asegurar que el valor se convirtió a utf-8
$longitudprioridad=''// variable para acumular la longitud de la prioridad 3 caracteres maximo
$resultado1=''// resultado de la base de datos
$resultado2=''// resultado de lo ingresado por el usuario
$vector2=array(); // vector para acumular resultado 2
$vector1=array(); // vector para acumular resultado 1

        
//----------------------USUARIO A BUSCAR Y CLAVE INGRESADA ---------------------


$clave strtoupper("PROFIT"); // clave a ingresar por el usuario
$buscar='001'// id usuario en consulta sql



//--------------------------------------------------------


   
    
    
    /****** Script para el comando SelectTopNRows de SSMS  ******/
        
            
$querys "SELECT A.employee_i, A.last_name, A.password, A.prioridad, A.mapa, A.Estado FROM MasterProfit.dbo.employee as A where A.employee_i='$buscar'";
            
$paramsselects = array();
            
$optionsselects =  array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
            
$tabla sqlsrv_query($conne$querys$paramsselects$optionsselects);
            
$row2 sqlsrv_fetch_array($tabla,SQLSRV_FETCH_ASSOC);
            
$row_counts sqlsrv_num_rows($tabla);

do  
{
          
               echo 
$row2['employee_i']."   ".$row2['last_name'];
               echo 
"<br>";
              
              
              
$prioridad $row2['prioridad'];
              
$mapa $row2['mapa'];
              
$codigolog $row2['employee_i'];
              
$longitudprioridad strlen($row2['prioridad']);
        
             




// ------------------   comprobamos si el contenido de la variable esta en UTF-8
    
                
if(mb_check_encoding$row2['password'] , "UTF-8" ))
                {
                    
//recodificamos el contenido
                    
$field iconv("UTF-8""WINDOWS-1252"strval($row2['password']));
                 
                }
      
      
        
    for( 
$e 1$e <= strlen(rtrim($field)); $e++) 
    {    
    
$vector1[$e] = representacionAnsiHorizontal1(rtrim($field),$e);    //// RESULTADO CLAVE BD
    
$resultado1.=$vector1[$e];
    
    }

     echo 
$resultado1;
        
        
        echo 
"<br>";
        echo (
$row2['password']); 
        

}while(
$row2 sqlsrv_fetch_array($tabla,SQLSRV_FETCH_ASSOC));







echo 
"<br>";
echo 
"<br>";
echo 
"<br>";





//-------------------------------------------------------------------------------------------------------


    
if (($longitudprioridad==2)||($longitudprioridad==1))  // si tiene 2 caracteres agrega un espacio en blanco a la izquierda
    

        
$prioridad str_pad($prioridad3" "STR_PAD_LEFT); 
    }


     
    if (
trim($codigolog)=="001"// si esta logueando con usuario profit
    

        
// $datos es la concatenación de la contraseña + prioridad + mapa
        
$datos "P".$clave.$prioridad.$mapa;
    } else { 
// cualquier otro usuario
        
$datos $clave.$prioridad.$mapa;
    }






 echo  
rand_string($datos);
 
echo 
"<br>";
echo 
"<br>";




  for( 
$d 1$d <= strlen(rand_string($datos)); $d++) 
    {    
    
$vector2[$d] = representacionAnsiHorizontal1(rand_string($datos),$d);    //// CLAVE RESULTADO
    
$resultado2.=$vector2[$d];
    
    }

 echo 
$resultado2;
 




 function 
rand_string($data
 {
  
$key_encript=" ";
    
$length strlen($data);
    for( 
$i 0$i $length$i++) 
    {    
        
$key_encript $key_encript.fun(substr($data$i1));
    }
   Return (
Substr($key_encript1strlen($key_encript)-1));
 }


Function 
fun ($car)
{
 Return (
chr((((ord($car)+17)*11)%255)));
}





function 
representacionAnsiHorizontal1($cadena,$b)

{
    
$array_de_chars=(unpack('C*',$cadena));

        return 
$array_de_chars[$b];
        
}




 echo 
"<br>"
 echo 
"<br>";




 if ((
$resultado1) == ($resultado2))
{
    echo 
"Usuario logueado con exito"// codigo para saltar a la siguiente pagina

else
{
    echo 
"Clave invalida para loguear"// codigo para regresar a la pagina anterior
}     


?>
</body>
</html>