Quiero crear un generador de tokens que genere tokens que el usuario no pueda adivinar y que sigan siendo únicos (para ser utilizados para el restablecimiento de contraseñas y los códigos de confirmación).md5 (uniqid) tiene sentido para tokens únicos aleatorios?
A menudo veo este código; ¿tiene sentido?
md5(uniqid(rand(), true));
según un commentuniqid($prefix, $moreEntopy = true)
rendimientos
primeros 8 caracteres hexadecimales = unixtime, últimos 5 hexagonales chars = microsegundos.
No sé cómo se maneja el $prefix
-parámetro ..
lo tanto, si no se establece la bandera $ moreEntopy de verdad, da un resultado predecible.
PREGUNTA:Pero si usamos uniqid
con $moreEntopy
, lo que no hash MD5 con nosotros comprar? ¿Es mejor que:
md5(mt_rand())
edit1: pueda almacenar este token en una columna de base de datos con un índice único, así que detectará columnas. Puede ser de interés/
'md5() en este caso se utiliza para oscurecer el momento en que se creó, que es un uso legítimo' Eso suena como la respuesta. –
tengo un proceso de servidor que necesita tomar datos de formulario y guardarlo como uniquetoken.xml. Ya tengo el formulario listo para crear el archivo xml. Hasta ahora los estoy nombrando con cada mmddyy.xml. ¿Cómo podría reemplazarlo con md5 (uniqid (mt_rand(), true));? – marciokoko
Esto es inseguro. Consulte la respuesta de Scott. – ChocoDeveloper