Tengo un sitio web que lee/verifica (y escribe) hashes de contraseñas de la base de datos, y tengo algo que hace hashes de contraseña de estilo SHA-512 para eso que se parece a:Creación de hashes glipt 2.7 estilo Sha-512 crypt en Perl
$6$GloHensinmyampOc$AxvlkxxXk36oDOyu8phBzbCfLn8hyWgoYNEuqNS.3dHf4JJrwlYCqha/g6pA7HJ1WwsADjWU4Qz8MfSWM2w6F.
El sitio web está basado en Java, así que escribí un hasher SHA-512 para él. El problema es que hay un montón de trabajos de cron de Perl que ejecutan y también necesitan verificar hash de contraseñas ocasionalmente en la base de datos, y dado que esos se ejecutan en un cuadro de Solaris, crypt no admite el formato $ 6 $.
Así, cuando lo haga:
printf("crypt => '%s'\n",crypt("Hello",'$1$CygnieHyitJoconf$'));
regrese con sensatez:
crypt => '$1$CygnieHy$n9MlDleP0qmGCfpbnVYy11'
Considerando que, si lo hago
printf("crypt => '%s'\n",crypt("Hello",'$6$CygnieHyitJoconf$'));
me sale un poco útil
crypt => ''
¿Hay alguna manera de obtener los valores hash de contraseña SHA-512 en Perl en un cuadro que no utiliza glibc? (Eso es lo que me dicen cuando hago una búsqueda en su mayoría (el "uso de la cripta").
Realmente preferiría no volver a implementar SHA-512 hashes de contraseñas en Perl.
Gracias!
No es tanto un algoritmo personalizado como un algoritmo diferente. Es sha512crypt. SHA512 está diseñado para ser RÁPIDO, que es lo contrario de lo que desea para una función de hashing de contraseña. Sigue el estándar crypt (3) junto con bcrypt, y admite complejidad variable (un número variable de 'rondas' para hacerlo más fuerte en el futuro cuando las 5000 rondas predeterminadas ya no son suficientes). crypt (3) es siempre lo que debes usar para el hashing de contraseñas. nada más, nunca. –