Saltar al contenido

Cómo crear hashes de contraseña SHA512 en la línea de comando

El tutorial o código que hallarás en este post es la solución más sencilla y efectiva que encontramos a tu duda o problema.

Solución:

En cualquiera de las distribuciones de Red Hat, como Fedora, CentOS o RHEL, el comando mkpasswd no incluye el mismo conjunto de opciones que la versión que normalmente se incluye con Debian/Ubuntu.

NOTA: El comando mkpasswd en realidad es parte del expect paquete, y probablemente debería evitarse. Puede averiguar a qué paquete pertenece con cualquiera de estos comandos.

$ yum whatprovides "*/mkpasswd"
-or-
$ repoquery -q --file */mkpasswd

Ejemplo

$ repoquery -q --file */mkpasswd
expect-0:5.43.0-8.el5.x86_64
expect-0:5.43.0-8.el5.i386

Ambos métodos son superiores al uso rpm ya que los paquetes no tienen que estar instalados para ubicar */mkpasswd.

Soluciones alternativas

Para evitar esto, puede usar las siguientes frases de Python o Perl para generar contraseñas SHA-512. Tenga en cuenta que estos son salados:

Pitón (>= 3.3)

$ python -c 'import crypt,getpass; print(crypt.crypt(getpass.getpass(), crypt.mksalt(crypt.METHOD_SHA512)))'

-o con guión-

$ python -c 'import crypt; print(crypt.crypt("somesecret", crypt.mksalt(crypt.METHOD_SHA512)))'

Python (2.x o 3.x)

$ python -c "import crypt, getpass, pwd; 
             print(crypt.crypt('password', '$6$saltsalt$'))"

$6$saltsalt$qFmFH.bQmmtXzyBY0s9v7Oicd2z4XSIecDzlB5KiA2/jctKu9YterLp8wwnSq.qc.eoxqOmSuNp2xS0ktL3nh/

Nota: $6$ designa a sha512. La compatibilidad con este método de especificación del algoritmo depende de la compatibilidad con la función de biblioteca crypt(3) del nivel del sistema operativo (generalmente en libcrypt). No depende de la versión de Python.

Perl

$ perl -e 'print crypt("password","$6$saltsalt$") . "n"'
$6$saltsalt$qFmFH.bQmmtXzyBY0s9v7Oicd2z4XSIecDzlB5KiA2/jctKu9YterLp8wwnSq.qc.eoxqOmSuNp2xS0ktL3nh/

En estos ejemplos la contraseña es la string “contraseña” y la sal es “salsal”. Ambos ejemplos están usando $6$ lo que indica que desea que crypt use SHA-512.

Sí, estás buscando mkpasswd, que (al menos en Debian) es parte de la whois paquete. No preguntes por qué…

[email protected]:~$ mkpasswd -m help
Available methods:
des     standard 56 bit DES-based crypt(3)
md5     MD5
sha-256 SHA-256
sha-512 SHA-512

Desafortunadamente, mi versión al menos no hace bcrypt. Si su biblioteca C lo hace, debería (y la página de manual ofrece una opción -R para establecer la fuerza). -R también funciona en sha-512, pero no estoy seguro si es PBKDF-2 o no.

Si necesita generar contraseñas bcrypt, puede hacerlo de manera bastante simple con el Crypt::Eksblowfish::Bcrypt Módulo Perl.

Puedes usar el doveadm utilidad, que está incluida en el dovecot paquete.

doveadm pw -s SHA512-CRYPT

Ejemplo de resultado:

SHA512-CRYPT$6$0JvQ1LLFESzA16.I$JVdKAIq0igudTq06BMqzT9rL1gRawMPwLr9U3/kBMKUqZdONfa0wubC89C35LKl3aE16CRH57BfGb4ygPLggL1

solo corta SHA512-CRIPTA y obtendrás tu SHA512 hash string.

Si para ti ha sido de ayuda este post, nos gustaría que lo compartas con más desarrolladores así contrubuyes a extender nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *