Ho un generatore di chiavi di sessione che utilizza solo lettere e numeri. Ho cercato per quanto tempo una chiave di sessione dovrebbe essere qui:
e con alcune forme di logica, direi che 20 caratteri a 8 byte ciascuno sono 160 bit ... più che sufficienti. Ho letto da qualche parte che 80 è il minimo, che sarebbe 10 caratteri.
Ma, dato che uso solo numeri e lettere, significa che le possibili permutazioni sono log(2, (52 + 10) ^ 20) ~= 119 bits
(52 caratteri + 10 numeri).
Quindi dato che la chiave a 128 bit dovrebbe impiegare 292 anni per indovinare (citata sopra), e la mia è 9 bit in meno, dovrebbe prendere 292 / (2^9) = .57 years
per indovinare .. Penso.
Questo è quello che penso che la risposta alla mia domanda sia:
Se si utilizzano tutti i 256 caratteri utf-8, 16 caratteri sono sufficienti per ottenere 128 bit (consigliato) e 10 è sufficiente per ottenere 80 bit (min).
Se si utilizzano solo caratteri specifici, utilizzare la seguente funzione per calcolare i bit e aumentare charCount finché non raggiunge la forza desiderata. log(2, (useableChars) ^ charCount)