Pregunta

Estoy tratando de imitar la creación de cadenas de contraseña a medida que aparecen en / etc / shadow.

Esto es lo que tengo hasta ahora, pero las contraseñas cifradas no coinciden, cuando se utiliza la misma contraseña y la misma sal.

5000 rondas es estándar para la cripta, así que utilicé eso también, pero no veo donde exacly he cometido un error:

Estoy haciendo esto en Perl, este es el porion relevante:

($pass, $salt) = @ARGV;

unless(defined($salt)) {
    $salt = MIME::Base64::encode(random_bytes(12), '');
}

for $i (1 .. 4999) {
    $pass = Digest::SHA::sha512($salt, $pass);
}

say "";

print '$6$', $salt, '$', Digest::SHA::sha512_base64($salt, $pass), "\$\n";
¿Fue útil?

Solución

El algoritmo consiste en la cripta mucho más que re-hash 5.000 veces:

Otros consejos

perl -e 'print crypt("qwerty", "\$6\$somesalt\$")'
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top