linux – ¿Cómo crear una contraseña con hash SHA-512 para la sombra?

Pregunta:

Las preguntas SF anteriores que he visto han dado lugar a respuestas que producen una contraseña con hash MD5.

¿Alguien tiene alguna sugerencia sobre cómo producir una contraseña con hash SHA-512? Preferiría una sola línea en lugar de un guión, pero, si un guión es la única solución, también está bien.

Actualizar

Reemplazo de versiones anteriores de py2 con esta:

python3 -c "import crypt;print(crypt.crypt(input('clear-text pw: '), crypt.mksalt(crypt.METHOD_SHA512)))"

Respuesta:

Aquí hay un trazador de líneas:

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

Python 3.3+ incluyemksalt 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 glibc de línea principal; agregado en algunas distribuciones de Linux)
  • 5 -> SHA-256 (desde glibc 2.7)
  • 6 -> SHA-512 (desde glibc 2.7)

Te recomiendo que busques qué son las sales y tal y, según los comentarios de smallclamgers, la diferencia entre cifrado y hashing.

Actualización 1: la cadena producida es adecuada para scripts de sombra 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 debe utilizar las versiones anteriores, porque Python usa la versión del sistema de crypt() , que no se comporta de la misma y los usos inseguros cifrado DES . Puede usar esta plataforma independiente de una línea (requiere passlib – instalar con pip3 install passlib ):

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

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım