with password encrypt decodificar best perl cryptography passwords salt password-encryption

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!