Porque no se puede conocer la implementación exacta del navegador (excepto para grupos cerrados de usuarios como para su intranet empresarial) me gustaría general, considerar el RNG débil.
Incluso si puede identificar el navegador que no sabe si el propio navegador o agente de cualquier otro navegador ID es manipulado. Si puede, debe generar el número en el servidor.
Incluso si se incluye una buena PRNG JavaScript en su servidor no puede saber si la solicitud del cliente se origina a partir de una secuencia de comandos sin modificar. Si el número entra en su base de datos y/o se utiliza como una herramienta criptográfica, no es una buena idea confiar en absoluto en los datos del cliente. Esto es cierto no sólo para la validez (Haces validar todos los datos que llegan desde el cliente, ¿verdad?), sino también para las características generales como la aleatoriedad.
Como adendo, sin embargo, no necesita un PRNG criptográficamente seguro para generar una sal. Las sales solo necesitan ser únicas y generarse de manera no determinista. –
Buen punto, pero una vez más, una contraseña corta + sal puede ser víctima de las tablas de arco iris. Cuando se trata de criptografía, siempre es favorable usar RNG criptográficos. –
@Teoman Sin embargo, la longitud de la sal y la contraseña son independientes de la fuente de la sal. Y sí, criptográficamente seguro es generalmente una apuesta más segura. –