GNU/Linux >> Linux Esercitazione >  >> Linux

Una riga per creare password in Linux?

Dipende da cosa intendi per "leggibile". Se vuoi usare solo caratteri esadecimali, te ne serviranno 32 per raggiungere 128 bit di entropia; questa riga funzionerà (usando solo i comandi del coreutils pacchetto):

head -c16 /dev/urandom | md5sum

Questa variante produce password con solo lettere minuscole, da 'a' a 'p' (questo è quello che vorrai se devi "digitare" la password su uno smartphone):

head -c16 /dev/urandom | md5sum | tr 0-9 g-p

Se vuoi digitare un carattere in meno, prova questo:

head -16 /dev/urandom | md5sum

(La probabilità di ottenere tutti i primi 16 byte casuali come 0x0A, ovvero il carattere "nuova riga", è 2, quindi questa riga riceve ancora 128 bit di entropia.)

Limitandoti ancora ai comandi da coreutils , puoi farlo:

mktemp -u XXXXXXXXXXXXXXXXXXXXXX

Questo genera una password di 22 caratteri, utilizzando /dev/urandom come fonte interna di casualità (ho controllato nel codice sorgente e un strace conferma chiamata). I caratteri sono lettere (maiuscole e minuscole) e cifre; poiché 62 è maggiore di 2, i 22 caratteri sono sufficienti.

Ancora un altro:

od -An -x /dev/urandom | head -1

questo visualizza otto sequenze di quattro cifre esadecimali. Probabilmente, questa suddivisione in piccole sequenze può aiutare la lettura.

Per una riga molto più lunga e un tipo di password abbastanza distinto, prova questo:

for i in {1..8} ; do head -$(expr $(head -c7 /dev/urandom | od -An -t dL) % $(wc -l < /usr/share/dict/british-english)) /usr/share/dict/british-english | tail -1 ; done

(questo funziona solo su un host a 64 bit; noterai perché?). A parte coreutils , quella versione richiede anche un file dizionario, qui quello per l'inglese britannico.


Alcuni suggerimenti favolosi nelle altre risposte. Trovo che makepasswd non sia disponibile ovunque, e usare tr è (leggermente) complicato, quindi c'è un'altra opzione che usa OpenSSL:

openssl rand -base64 16

Il numero è il numero di byte di casualità, quindi 16 byte per 128 bit di entropia.


Utilizzando pwgen

La battuta più semplice di sempre:

pwgen

Tenta di creare password facili da ricordare. Per disabilitarlo e creare password più sicure, usa il --secure o -s bandiera.

pwgen -s

Le password generate sono troppo lunghe? Troppo corta? Basta aggiungere la lunghezza desiderata:

pwgen 9
# Or
pwgen -s 9
# Or
pwgen 9 -s

Strumenti simili

Mi capita di conoscere pwgen, ci sono altri strumenti là fuori. Puoi trovarli usando la funzione di ricerca dalla tua distribuzione. In Debian questo è:

apt-cache search password generator

Esegue una ricerca esatta (sebbene senza distinzione tra maiuscole e minuscole). Usando password generat invece amplia la ricerca.

Prima di installare il pacchetto può essere utile visionarne la descrizione. Di nuovo in Debian:

apt-cache show $DESIRED_PACKAGE
# E.g.
apt-cache show pwgen

Strumenti che potrei trovare in questo modo:

  • pwgen
  • makepasswd
  • apg
  • otp (pensato per pastiglie monouso, non consigliato)
  • gpw (si concentra fortemente sulla pronunciabilità, sconsigliato)

Uso degli strumenti Unix standard

Non tutti i sistemi potrebbero avere pwgen disponibile. Come altri hanno risposto, puoi usare md5sum o sha256sum , ma restituisce solo 0-9 e a-f. Nessuna g-z o maiuscole e minuscole, per non parlare dei caratteri speciali. È meglio semplicemente filtrare i caratteri non stampabili da /dev/urandom finché non avrai una password della lunghezza desiderata:

cat /dev/urandom | tr -cd '@-~' | head -c 8

Il che dà qualcosa come XiVsdn[y o [email protected]^lY . Puoi cambiare il 8 alla fine per la lunghezza della password desiderata. Puoi anche modificare il @-~ parte per limitare i caratteri. Ad esempio, questo stamperà solo caratteri alfanumerici:

cat /dev/urandom | tr -cd 'a-zA-Z0-9' | head -c 8

Questo è quasi identico a pwgen -s farebbe e fornisce password come nZiUzNtE .

Come bonus, il tr è incluso in quasi tutti i sistemi operativi (Mac OS X, GNU/Linux, Android/Linux, Solaris, FreeBSD, ecc.) eccetto Microsoft Windows.


Linux
  1. Genera password sulla riga di comando di Linux

  2. Come creare un pacchetto RPM Linux

  3. Come creare un servizio Systemd in Linux

  4. Come creare un file di scambio in Linux

  5. comando Linux ln

Come creare un file in Linux

Come creare collegamenti su desktop Linux

Come creare alias SSH in Linux

Come creare un alias in Linux

4 modi per creare un nuovo file in Linux

Crea una partizione in Linux:una guida passo passo