Tengo un generador de claves de sesión que usa solo letras y números. He buscado cuánto tiempo debería estar aquí una clave de sesión:
y por algunas formas de lógica, diría que 20 caracteres a 8 bytes cada uno son 160 bits ... más que suficiente. Leí en algún lugar que 80 es el mínimo, que sería 10 caracteres.
Pero, como solo estoy usando números y letras, eso significa que las posibles permutaciones son log(2, (52 + 10) ^ 20) ~= 119 bits
(52 caracteres + 10 números).
Entonces, dada la clave de 128 bits debería tomar 292 años para adivinar (citado arriba), y la mía es 9 bits menos, debería tomar 292 / (2^9) = .57 years
para adivinar ... Creo.
Esto es lo que creo que la respuesta a mi pregunta es:
Si utiliza los 256 caracteres utf-8, 16 caracteres son suficientes para obtener 128 bits (recomendado) y 10 son suficientes para obtener 80 bits (min).
Si solo usa caracteres específicos, use la siguiente función para calcular sus bits y aumentar charCount hasta que esté en la fuerza deseada. log(2, (useableChars) ^ charCount)