[In English: https://josemmsimo.wordpress.com/2013/01/18/get-a-random-alphanumeric-string-using-php]
En este post, escribo como es posible generar un código aleatorio (con números, letras y símbolos) usando PHP muy fácilmente :-) Mi companía me pidió esto, para una tarea específica, y pensé que esto podría ser util para generar contraseñas aleatorias (entre otras cosas):
function getRandomCode(){ $an = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-)(.:,;"; $su = strlen($an) - 1; return substr($an, rand(0, $su), 1) . substr($an, rand(0, $su), 1) . substr($an, rand(0, $su), 1) . substr($an, rand(0, $su), 1) . substr($an, rand(0, $su), 1) . substr($an, rand(0, $su), 1); }
Este código php genera 6 dígitos aleatorios. Para esto, se usa:
- rand(X, Y): X es el número más pequeño que se puede generar e Y el más grande. Con esto, tendremos un número aleatorio.
- substr(X, Y, Z): X es una cadena, Y es donde empezara una subcadena, y Z el número de letras que se escogerán de la cadena. Con esto, tendremos un dígito.
- strlen(X): X es una cadena. Con esto, obtendremos el tamaño de una cadena.
Podríamos llamar 100 veces a la función así:
for ($i = 0; $i < 100; $i++) echo getRandomCode() . "<br />";
Y obtener un resultado similar a:
CSHY7S
SGYVAQ
YVU(W7
3MYKSW
WF0FWK
DOP1MU
IO-H3S …
gracias por el codigo
Me gustaMe gusta
Si a eso le agregas un for para hacer las llamas a substr, y le pasas un len como variable, te queda para cualquier tipo de longitud
Me gustaMe gusta
como hago para decir a la funcion donde el sistema me genera codigos aletorios que no solo sean aleatorios si no unicos tambien?
public function genKey(){
$userId=Yii::app()->user->id;
//$key=uniqid($key);
$key= sprintf(‘%4x’.$userId, mt_rand( 0, 0x3fff ) | 0x8000);//date(«dmy»).’%4x’.date(«Hi»).$userId, mt_rand( 0, 0x3fff ) | 0x8000);
return $key;
}
Me gustaMe gusta
Creo que se pude hacer super simple.
echo md5(time());
Suerte!
Me gustaMe gusta