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");
$conne= sqlsrv_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($prioridad, 3, " ", 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, $i, 1));
}
Return (Substr($key_encript, 1, strlen($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>