GNU/Linux >> Linux Esercitazione >  >> Linux

Come creare una password con hash SHA-512 per shadow?

Soluzione 1:

Ecco una riga:

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

Python 3.3+ include mksalt in crypt, il che rende molto più facile (e più sicuro) l'utilizzo:

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

Se non fornisci un argomento a crypt.mksalt (potrebbe accettare crypt.METHOD_CRYPT , ...MD5 , SHA256 e SHA512 ), utilizzerà il più forte disponibile.

L'ID dell'hash (numero dopo il primo $ ) è correlato al metodo utilizzato:

  • 1 -> MD5
  • 2a -> Blowfish (non nella glibc principale; aggiunto in alcune distribuzioni Linux)
  • 5 -> SHA-256 (a partire da glibc 2.7)
  • 6 -> SHA-512 (a partire da glibc 2.7)

Ti consiglierei di cercare cosa sono i sali e cose del genere e, come da smallclamgers, commentare la differenza tra crittografia e hashing.

Aggiornamento 1:la stringa prodotta è adatta per script shadow e kickstart.
Aggiornamento 2:Avviso . Se stai usando un Mac, vedi il commento sull'utilizzo di questo in python su un Mac dove non sembra funzionare come previsto.

Su macOS non dovresti usa le versioni sopra, perché Python usa la versione del sistema di crypt() che non si comporta allo stesso modo e utilizza la crittografia DES non sicura. Puoi utilizzare questa riga indipendente dalla piattaforma (richiede passlib – installa con pip3 install passlib ):

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

Soluzione 2:

Su Debian puoi usare mkpasswd per creare password con diversi algoritmi di hashing adatti a /etc/shadow. È incluso nel pacchetto whois (secondo apt-file)

mkpasswd -m sha-512
mkpasswd -m md5

per ottenere un elenco di algoritmi di hashing disponibili digitare:

mkpasswd -m help 

HTH

Soluzione 3:

Migliore risposta: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)**

Soluzione 4:

Ecco un breve codice C per generare la password SHA-512 su vari sistemi operativi di tipo Unix.

File: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;
}

da compilare:

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

utilizzo:

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

Soluzione 5:

Perl soluzione one-liner per generare password con hash SHA-512:

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

Ha lavorato su RHEL 6


Linux
  1. Come creare una directory condivisa per tutti gli utenti in Linux

  2. Come creare manualmente un account utente Linux

  3. Come creare hash della password Sha512 sulla riga di comando?

  4. Come creare un ciclo for con un numero variabile di iterazioni?

  5. Come digitare la password per più finestre?

Come impacchettare applicazioni Python per Linux

Come creare un'unità USB avviabile per Linux

Come creare un controller di dominio su Linux per AD

Come posso fare in modo che sudo chieda la password di root?

Come posso creare un utente solo per sftp?

come si crea una chiave ssh per un altro utente?