Pregunta:
En Linux puedo crear un hash de contraseña SHA1 usando sha1pass mypassword
. ¿Existe una herramienta de línea de comando similar que me permita crear hashes sha512
? La misma pregunta para Bcrypt
y PBKDF2
.
Respuesta:
En cualquiera de las distribuciones de Red Hat como Fedora, CentOS o RHEL, el comando mkpasswd
no incluye el mismo conjunto de conmutadores que la versión que normalmente se incluye con Debian / Ubuntu.
NOTA: El comando mkpasswd
es en realidad parte del paquete expect
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 de rpm
ya que no es necesario instalar los paquetes para localizar */mkpasswd
.
Soluciones alternativas
Para solucionar este problema, puede utilizar las siguientes frases sencillas de Python o Perl para generar contraseñas SHA-512. Tenga en cuenta que estos son salados:
Python (> = 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.xo 3.x)
$ python -c "import crypt, getpass, pwd; \
print(crypt.crypt('password', '\$6\$saltsalt\$'))"
$6$saltsalt$qFmFH.bQmmtXzyBY0s9v7Oicd2z4XSIecDzlB5KiA2/jctKu9YterLp8wwnSq.qc.eoxqOmSuNp2xS0ktL3nh/
Nota: $ 6 $ designa sha512. El soporte para este método de especificar el algoritmo depende del soporte en 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 cadena "contraseña" y la sal es "salesalt". Ambos ejemplos usan $ 6 $, lo que indica que desea que crypt use SHA-512.