GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo crear una contraseña hash SHA-512 para shadow?

Solución 1:

Aquí hay una sola línea:

python -c 'import crypt; print crypt.crypt("test", "$6$random_salt")'

Python 3.3+ incluye mksalt en crypt, lo que lo hace mucho más fácil (y más seguro) de usar:

python3 -c 'import crypt; print(crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512)))'

Si no proporciona un argumento a crypt.mksalt (podría aceptar crypt.METHOD_CRYPT , ...MD5 , SHA256 y SHA512 ), utilizará el más fuerte disponible.

El ID del hash (número después del primer $ ) está relacionado con el método utilizado:

  • 1 -> MD5
  • 2a -> Blowfish (no en la línea principal glibc; agregado en algunas distribuciones de Linux)
  • 5 -> SHA-256 (desde glibc 2.7)
  • 6 -> SHA-512 (desde glibc 2.7)

Le recomiendo que busque qué son las sales y demás y, según los pequeños comentarios, comente la diferencia entre el cifrado y el hashing.

Actualización 1:la cadena producida es adecuada para scripts shadow y kickstart.
Actualización 2:Advertencia . Si está usando una Mac, vea el comentario sobre cómo usar esto en python en una Mac donde no parece funcionar como se esperaba.

En macOS, no use las versiones anteriores, porque Python usa la versión del sistema de crypt() que no se comporta igual y utiliza encriptación DES insegura. Puede usar esta plataforma independiente de una sola línea (requiere passlib – instalar con pip3 install passlib ):

python3 -c 'import passlib.hash; print(passlib.hash.sha512_crypt.hash("test"))'

Solución 2:

En Debian puedes usar mkpasswd para crear contraseñas con diferentes algoritmos hash adecuados para /etc/shadow. Está incluido en el paquete whois (según apt-file)

mkpasswd -m sha-512
mkpasswd -m md5

para obtener una lista de los algoritmos hash disponibles, escriba:

mkpasswd -m help 

HTH

Solución 3:

Mejor respuesta:grub-crypt

Usage: grub-crypt [OPTION]...
Encrypt a password.

-h, --helpPrint this message and exit
-v, --version           Print the version information and exit
--md5                   Use MD5 to encrypt the password
--sha-256               Use SHA-256 to encrypt the password
**--sha-512             Use SHA-512 to encrypt the password (default)**

Solución 4:

Aquí hay un código C corto para generar la contraseña SHA-512 en varios sistemas operativos de tipo Unix.

Archivo:passwd-sha512.c

#define _XOPEN_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

int main(int argc, char *argv[]) {
  if ( argc < 3 || (int) strlen(argv[2]) > 16 ) {
    printf("usage: %s password salt\n", argv[0]);
    printf("--salt must not larger than 16 characters\n");
    return;
  }

  char salt[21];
  sprintf(salt, "$6$%s$", argv[2]);

  printf("%s\n", crypt((char*) argv[1], (char*) salt));
  return;
}

para compilar:

/usr/bin/gcc -lcrypt -o passwd-sha512 passwd-sha512.c

uso:

passwd-sha512 <password> <salt (16 chars max)>

Solución 5:

Perl solución de una sola línea para generar una contraseña hash SHA-512:

perl -le 'print crypt "desiredPassword", "\$6\$customSalt\$"'

Trabajó en RHEL 6


Linux
  1. Cómo crear un archivo ZIP protegido con contraseña en Linux

  2. Cómo hacer que sudo recuerde la contraseña por más tiempo

  3. Cómo crear una imagen de Windows para OpenStack

  4. ¿Cómo crear hashes de contraseña Sha512 en la línea de comandos?

  5. ¿Cómo crear un bucle for con un número variable de iteraciones?

Cómo empaquetar aplicaciones de Python para Linux

Cómo crear una unidad USB de arranque para Linux

Cómo crear un controlador de dominio en Linux para AD

¿Cómo hago que Sudo solicite la contraseña de root?

cómo crear archivos multitar para una carpeta enorme

¿Cómo se crea una clave ssh para otro usuario?