He podido descifrar contraseñas, dadas sus sales y sus hashes, mediante el uso de la fuerza bruta.
En primer lugar, la longitud de las contraseñas era 3 y la longitud de sal 2:
por ejemplo , hash: rrVo/xC.s5/hQ
, salt: rr
= > contraseña: thr
(tiempo: ~ 0m4.579s)
Ahora, para contraseñas de longitud 4 y longitud de sal 2:
por ejemplo , hash: ss1C5xfz6Nggg
, salt: ss
= > contraseña: four
(tiempo: ~ 7m19.531s)
Como he dicho, estas contraseñas se obtuvieron utilizando un algoritmo de fuerza bruta. Es útil para longitudes de contraseña cortas: a medida que aumenta el número de caracteres para la contraseña, el tiempo necesario para romper la contraseña crece exponencialmente.
Lo que quiero saber es una técnica más eficiente para reducir el espacio de búsqueda.
Información adicional:
-
Las contraseñas se crean usando: A-Z, a-z, 0-9 y símbolos: $, #, +, @, =, /, &
-
He estado usando el comando
openssl
para generar los hash y los he comparado con el hash dado$ openssl passwd -crypt -salt rr thr
en un script bash.