perl - password - hash with salt java
Creación de hashes glipt 2.7 estilo Sha-512 crypt en Perl (2)
Lamentablemente no. crypt
será la crypt
libc de tu sistema, que se encarga de elegir algoritmos y asignar cadenas de prefijos a los algoritmos. Si quieres acceder a algoritmos que no están en tu crypt
sistema, entonces necesitarás usar una reimplementación de ellos, y en el caso de los libc, no sé de ninguna reimplementación. hash de contraseñas "SHA-512" de glibc no es simplemente SHA-512; es un algoritmo personalizado que no existe fuera de glibc que yo sepa. Si todavía tienes la oportunidad, tal vez quieras cambiar a un algoritmo como bcrypt o PBKDF-SHA-2 que tenga implementaciones múltiples en diferentes idiomas.
Entonces, tengo un sitio web que lee / verifica (y escribe) hash de contraseñas de la base de datos, y tengo algo que hace los hashes de contraseña de estilo SHA-512 para eso, que se parecen a:
$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 cron de perl que se ejecutan y que 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 $.
Entonces, cuando lo haga:
printf("crypt => ''%s''/n",crypt("Hello",''$1$CygnieHyitJoconf$''));
Vuelvo con sensatez:
crypt => ''$1$CygnieHy$n9MlDleP0qmGCfpbnVYy11''
Mientras que si lo hago
printf("crypt => ''%s''/n",crypt("Hello",''$6$CygnieHyitJoconf$''));
Me sale un poco útil
crypt => ''''
¿Hay alguna manera de obtener los hashes 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 ("use crypt").
Realmente preferiría no volver a implementar hash de contraseñas SHA-512 en Perl.
¡Gracias!
En realidad, creo que acabo de encontrar mi propia respuesta: Crypt :: Passwd :: XS
Crypt :: Passwd :: XS - Implementación completa de XS de algoritmos comunes de crypt ()
Hace unix_md5, apache_md5, unix_des, unix_sha256 y unix_sha512 ... Supongo que es un poco desafortunado que no haga blowfish. ¡Pero, sin embargo, resuelve mi problema! ¡Gracias @hobbs de todas formas!
use strict;
use Crypt::Passwd::XS;
{
printf("crypt => %s/n",Crypt::Passwd::XS::crypt("Hello",''$6$CygnieHyitJoconf$''));
}
Ahora regresa
crypt => $6$CygnieHyitJoconf$vkGJm.nLrFhyWHhNTvOh9fH/k7y6k.8ed.N7TqwT93hPMPfAOUsrRiO3MmQB5xTm1XDCVlW2zwyzU48epp8pY/
¡como se esperaba!