Inicio > Programación Web > Generando una clave única

Generando una clave única

lunes, 25 de noviembre de 2024 Dejar un comentario Ir a comentarios

Cuando necesitas una clave única para identificar a un objeto, a veces recurres a utilizar valores uid, pero el valor de por si no te garantiza que sea unico,


Puedes usar esto en PHP:

$key = md5(uniqid(mt_rand(), false));

El valor generado sera unico, pero ¿piensas que nunca se repetira?, yo no lo creo.

Para estos casos debes verificar en tu base de datos:

function generateKey(){//Generate a unique key 
    do{
	$key = md5(uniqid(mt_rand(), false));
    }
    while(validateKeyn($key));
 
    return $key;
}
 
function validateKey($key){//check the DB
       $query = "SELECT theKey FROM Table WHERE theKey ='".trim($key)."' LIMIT 1";
       $result=mysql_query($query);
 
	if (mysql_num_rows($result)) return true;
	else return false;
}

Tambipen imagino que necesitaras crear una especie de número de serie, para lo cual puedes usar esta interesante función:

// Genera Guid 
function NewGuid() { 
    $s = strtoupper(md5(uniqid(rand(),true))); 
    $guidText = 
        substr($s,0,8) . '-' . 
        substr($s,8,4) . '-' . 
        substr($s,12,4). '-' . 
        substr($s,16,4). '-' . 
        substr($s,20); 
    return $guidText;
}
// End Generate Guid 
$Guid = NewGuid();

Esto devolverá algo como: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX al estilo id unico (unique identifier), (8 letras)-(4 letras)-(4 letras)-(4 letras)-(12 letras).

Comparte y diviertete:
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • BlinkList
  • Blogosphere
  • Live
  • Meneame
  • MSN Reporter
  • MySpace
  • RSS
  • Suggest to Techmeme via Twitter
  • Technorati
  • LinkedIn
  • email
  • FriendFeed
  • PDF
  • Reddit
  • Wikio IT
  • Add to favorites
  • blogmarks
Top Footer