Es una cadena aleatoria un código de verificación buena
-
01-10-2019 - |
Pregunta
Estoy generando un código de verificación que se utilizará para la activación de la cuenta. Usted probablemente ha visto este tipo de cosas antes.
Mi pregunta: si yo fuera a generar este código con una fórmula compleja como esta:
md5(md5(time().'helloguys'.rand(0,9999)));
¿Es realmente mejor que la generación de sólo una cadena aleatoria de 32 caracteres y números como gj3dI3OGwo5Enf...
?
Solución
No, utilizando el hash no es mejor. Sería más seguro (menos predecible) para recoger 32 caracteres aleatorios. (Dígitos son caracteres.) Utilizar un buen ( "criptográfica") generador de números aleatorios, con una semilla buena (algunos bytes de / dev / random). No usar el tiempo como una semilla.
Otros consejos
De acuerdo con Erickson, simplemente le puede aconsejar a su uso
pwgen -1 -s
comando en * nix, que tendrá el trabajo muich mejor de cualquier procedimiento que pueda inventar.
Si desea generar un poco de hilo mediante programación puede echar un vistazo a
<?php
$better_token = md5(uniqid(rand(),1));
?>
esto da muy buen nivel de aleatoriedad y antes de las colisiones.
Si necesita aún más alto nivel de seguridad que usted puede considerar para generar secuencias aleatorias en http: //www.random. org /