Ver Mensaje Individual
  #5 (permalink)  
Antiguo 03/05/2014, 10:08
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Como generar ID aleatorio en una base de datos

Un id autoincremental tiene muchas ventajas, entre ellas velocidad, siempre deberias usarlo.

Puedes hacer varias cosas con esos numeros:

- Si los distancias sumando una constante k, ya no son consecuitivos
- Si les aplicas una funcion lineal, necesitan al menos 3 Ids para advertir esa distribucion y obtener la ecuacion
- Podrias usar un polinomio de grado mayor (2 por ejemplo)

Te dejo un ejemplo de HASH simple que te hice:

Código PHP:
<?php
/*
    @author: Pablo Bozzolo
*/

# auxiliar
function swapstr($s){    
    
$endpos strlen($s)-1;
    
$last     $s[$endpos];
    
$first  $s[0];
    
$s substr_replace ($s $last ,01); 
    
$s substr_replace ($s $first ,$endpos1); 
    return 
$s;
}

# coding
function ofusca_key($n){
    return 
swapstr(strval(dechex(1000 $n*$n)));
}    
    
#decoding
function desofusca_key($s){
    return 
sqrt(hexdec(swapstr($s)) -1000);
}    


// Ejemplo
$n 3500;

echo 
ofusca_key($n)."\n";
echo 
desofusca_key(ofusca_key($n));
Tu muestras el ID ofuscado en la URL y cuando te quieres devolver para con el parametro GET recuperar tus datos, usas la funcion inversa desofusca_key()

Si te fijas el ID=1 ya se convierte en algo medio complicado de decodificar

Podrias complicarla mas con mascara de bits
__________________
Salu2!

Última edición por Italico76; 04/05/2014 a las 05:46