GNU/Linux >> Linux Esercitazione >  >> Linux

8 modi per generare password casuali in Linux

Impara 8 modi diversi per generare una password casuale in Linux utilizzando comandi nativi di Linux o utilità di terze parti.

In questo articolo, ti guideremo attraverso vari modi per generare una password casuale nel terminale Linux. Pochi di loro utilizzano comandi Linux nativi e altri utilizzano strumenti o utilità di terze parti che possono essere facilmente installati sulla macchina Linux. Qui stiamo guardando comandi nativi come,openssl dd, md5sum , tr , urandom e strumenti di terze parti come mkpasswd, randpw, pwgen, spw, gpg, xkcdpass, diceware, rivelazione, keepaasx, passwordmaker.

Questi sono in realtà modi per ottenere una stringa alfanumerica casuale che può essere utilizzata come password. Le password casuali possono essere utilizzate per i nuovi utenti in modo che ci sia unicità, non importa quanto sia ampia la tua base di utenti. Senza ulteriori indugi, passiamo a quei 15 diversi modi per generare la password casuale in Linux.

Genera password usando l'utilità mkpasswd

mkpasswd viene fornito con l'installazione di expect pacchetto su sistemi basati su RHEL. Su sistemi basati su Debian mkpasswd viene fornito con il pacchetto whois . Tentativo di installare mkpasswd il pacchetto risulterà in errore –

Nessun pacchetto mkpasswd disponibile. sul sistema RHEL e E:Impossibile individuare il pacchetto mkpasswd in base a Debian.

Quindi installa i loro pacchetti principali come menzionato sopra e sei a posto.

Esegui mkpasswd per ottenere le password

root@kerneltalks# mkpasswd << on RHEL
zt*hGW65c

root@kerneltalks# mkpasswd teststring << on Ubuntu
XnlrKxYOJ3vik

Il comando si comporta in modo diverso su sistemi diversi, quindi lavora di conseguenza. Ci sono molti interruttori che possono essere usati per controllare i parametri di lunghezza ecc. Puoi esplorarli dalle pagine man.

Genera password utilizzando OpenSSL

OpenSSL viene fornito in build con quasi tutte le distribuzioni Linux. Possiamo usare la sua funzione casuale per ottenere una stringa alfanumerica generata che può essere utilizzata come password.

root@kerneltalks # openssl rand -base64 10
nU9LlHO5nsuUvw==

Qui stiamo usando base64 codifica con funzione casuale e ultima cifra per l'argomento in base64 codifica.

Genera password utilizzando urandom

Il file del dispositivo /dev/urandom è un'altra fonte per ottenere caratteri casuali. Stiamo usando tr funzione e output di ritaglio per ottenere la stringa casuale da utilizzare come password.

root@kerneltalks # strings /dev/urandom |tr -dc A-Za-z0-9 | head -c20; echo
UiXtr0NAOSIkqtjK4c0X

dd comando per generare la password

Possiamo persino usare /dev/urandom device insieme al comando dd per ottenere una stringa di caratteri casuali.

root@kerneltalks# dd if=/dev/urandom bs=1 count=15|base64 -w 0
15+0 records in
15+0 records out
15 bytes (15 B) copied, 5.5484e-05 s, 270 kB/s
QMsbe2XbrqAc2NmXp8D0

Dobbiamo passare l'output attraverso base64 codifica per renderlo leggibile dall'uomo. Puoi giocare con il valore di conteggio per ottenere la lunghezza desiderata. Per un output molto più pulito, reindirizza std2 a /dev/null . Il comando di pulizia è –

root@kerneltalks # dd if=/dev/urandom bs=1 count=15 2>/dev/null|base64 -w 0
F8c3a4joS+a3BdPN9C++

Utilizzo di md5sum per generare la password

Un altro modo per ottenere una matrice di caratteri casuali che possono essere utilizzati come password è calcolare il checksum MD5! s sai che il valore del checksum sembra davvero caratteri casuali raggruppati insieme, possiamo usarlo come password. Assicurati di utilizzare il sorgente come qualcosa di variabile in modo da ottenere un checksum diverso ogni volta che esegui il comando. Ad esempio date ! Il comando date restituisce sempre la modifica dell'output.

root@kerneltalks # date |md5sum
4d8ce5c42073c7e9ca4aeffd3d157102  -

Qui abbiamo superato date output del comando su md5sum e ottieni l'hash del checksum! È possibile utilizzare il comando di taglio per ottenere la lunghezza desiderata dell'output.

Genera password usando pwgen

pwgen il pacchetto viene fornito con repository come EPEL. pwgen è più focalizzato sulla generazione di password che siano pronunciabili ma non una parola del dizionario o non in un inglese semplice. Potresti non trovarlo nel repository di distribuzione standard. Installa il pacchetto ed esegui pwgen comando. Boom!

root@kerneltalks # pwgen
thu8Iox7 ahDeeQu8 Eexoh0ai oD8oozie ooPaeD9t meeNeiW2 Eip6ieph Ooh1tiet
cootad7O Gohci0vo wah9Thoh Ohh3Ziur Ao1thoma ojoo6aeW Oochai4v ialaiLo5
aic2OaDa iexieQu8 Aesoh4Ie Eixou9ph ShiKoh0i uThohth7 taaN3fuu Iege0aeZ
cah3zaiW Eephei0m AhTh8guo xah1Shoo uh8Iengo aifeev4E zoo4ohHa fieDei6c
aorieP7k ahna9AKe uveeX7Hi Ohji5pho AigheV7u Akee9fae aeWeiW4a tiex8Oht

Ti verrà presentato l'elenco delle password sul tuo terminale! Cos'altro vuoi? Ok. Vuoi ancora esplorare, pwgen viene fornito con molte opzioni personalizzate a cui è possibile fare riferimento per la pagina man.

Genera password usando lo strumento gpg

GPG è uno strumento di crittografia e firma OpenPGP. Per lo più lo strumento gpg viene preinstallato (almeno è sul mio RHEL7). Ma in caso contrario puoi cercare gpg o gpg2 pacchetto e installarlo.

Usa il comando seguente per generare la password dallo strumento gpg.

root@kerneltalks # gpg --gen-random --armor 1 12
mL8i+PKZ3IuN6a7a

Qui stiamo passando genera un interruttore di sequenza di byte casuale (--gen-random ) di qualità 1 (primo argomento) con un conteggio di 12 (secondo argomento). Cambia --armor assicura che l'output sia base64 codificato.

Genera password usando xkcdpass

Il famoso sito web di umorismo geek xkcd, ha pubblicato un post molto interessante su password memorabili ma comunque complesse. Puoi vederlo qui. Quindi xkcdpass strumento ha preso ispirazione da questo post e ha fatto il suo lavoro! È un pacchetto Python ed è disponibile sul sito Web ufficiale di Python qui

Tutte le istruzioni di installazione e utilizzo sono menzionate in quella pagina. Ecco i passaggi e gli output di installazione dal mio server RHEL di prova come riferimento.

root@kerneltalks # wget https://pypi.python.org/packages/b4/d7/3253bd2964390e034cf0bba227db96d94de361454530dc056d8c1c096abc/xkcdpass-1.14.3.tar.gz#md5=5f15d52f1d36207b07391f7a25c7965f
--2018-01-23 19:09:17--  https://pypi.python.org/packages/b4/d7/3253bd2964390e034cf0bba227db96d94de361454530dc056d8c1c096abc/xkcdpass-1.14.3.tar.gz
Resolving pypi.python.org (pypi.python.org)... 151.101.32.223, 2a04:4e42:8::223
Connecting to pypi.python.org (pypi.python.org)|151.101.32.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 871848 (851K) [binary/octet-stream]
Saving to: ‘xkcdpass-1.14.3.tar.gz’

100%[==============================================================================================================================>] 871,848     --.-K/s   in 0.01s

2018-01-23 19:09:17 (63.9 MB/s) - ‘xkcdpass-1.14.3.tar.gz’ saved [871848/871848]


root@kerneltalks # tar -xvf xkcdpass-1.14.3.tar.gz
xkcdpass-1.14.3/
xkcdpass-1.14.3/examples/
xkcdpass-1.14.3/examples/example_import.py
xkcdpass-1.14.3/examples/example_json.py
xkcdpass-1.14.3/examples/example_postprocess.py
xkcdpass-1.14.3/LICENSE.BSD
xkcdpass-1.14.3/MANIFEST.in
xkcdpass-1.14.3/PKG-INFO
xkcdpass-1.14.3/README.rst
xkcdpass-1.14.3/setup.cfg
xkcdpass-1.14.3/setup.py
xkcdpass-1.14.3/tests/
xkcdpass-1.14.3/tests/test_list.txt
xkcdpass-1.14.3/tests/test_xkcdpass.py
xkcdpass-1.14.3/tests/__init__.py
xkcdpass-1.14.3/xkcdpass/
xkcdpass-1.14.3/xkcdpass/static/
xkcdpass-1.14.3/xkcdpass/static/eff-long
xkcdpass-1.14.3/xkcdpass/static/eff-short
xkcdpass-1.14.3/xkcdpass/static/eff-special
xkcdpass-1.14.3/xkcdpass/static/fin-kotus
xkcdpass-1.14.3/xkcdpass/static/ita-wiki
xkcdpass-1.14.3/xkcdpass/static/legacy
xkcdpass-1.14.3/xkcdpass/static/spa-mich
xkcdpass-1.14.3/xkcdpass/xkcd_password.py
xkcdpass-1.14.3/xkcdpass/__init__.py
xkcdpass-1.14.3/xkcdpass.1
xkcdpass-1.14.3/xkcdpass.egg-info/
xkcdpass-1.14.3/xkcdpass.egg-info/dependency_links.txt
xkcdpass-1.14.3/xkcdpass.egg-info/entry_points.txt
xkcdpass-1.14.3/xkcdpass.egg-info/not-zip-safe
xkcdpass-1.14.3/xkcdpass.egg-info/PKG-INFO
xkcdpass-1.14.3/xkcdpass.egg-info/SOURCES.txt
xkcdpass-1.14.3/xkcdpass.egg-info/top_level.txt


root@kerneltalks # cd xkcdpass-1.14.3

root@kerneltalks # python setup.py install
running install
running bdist_egg
running egg_info
writing xkcdpass.egg-info/PKG-INFO
writing top-level names to xkcdpass.egg-info/top_level.txt
writing dependency_links to xkcdpass.egg-info/dependency_links.txt
writing entry points to xkcdpass.egg-info/entry_points.txt
reading manifest file 'xkcdpass.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'xkcdpass.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build
creating build/lib
creating build/lib/xkcdpass
copying xkcdpass/xkcd_password.py -> build/lib/xkcdpass
copying xkcdpass/__init__.py -> build/lib/xkcdpass
creating build/lib/xkcdpass/static
copying xkcdpass/static/eff-long -> build/lib/xkcdpass/static
copying xkcdpass/static/eff-short -> build/lib/xkcdpass/static
copying xkcdpass/static/eff-special -> build/lib/xkcdpass/static
copying xkcdpass/static/fin-kotus -> build/lib/xkcdpass/static
copying xkcdpass/static/ita-wiki -> build/lib/xkcdpass/static
copying xkcdpass/static/legacy -> build/lib/xkcdpass/static
copying xkcdpass/static/spa-mich -> build/lib/xkcdpass/static
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/egg
creating build/bdist.linux-x86_64/egg/xkcdpass
copying build/lib/xkcdpass/xkcd_password.py -> build/bdist.linux-x86_64/egg/xkcdpass
copying build/lib/xkcdpass/__init__.py -> build/bdist.linux-x86_64/egg/xkcdpass
creating build/bdist.linux-x86_64/egg/xkcdpass/static
copying build/lib/xkcdpass/static/eff-long -> build/bdist.linux-x86_64/egg/xkcdpass/static
copying build/lib/xkcdpass/static/eff-short -> build/bdist.linux-x86_64/egg/xkcdpass/static
copying build/lib/xkcdpass/static/eff-special -> build/bdist.linux-x86_64/egg/xkcdpass/static
copying build/lib/xkcdpass/static/fin-kotus -> build/bdist.linux-x86_64/egg/xkcdpass/static
copying build/lib/xkcdpass/static/ita-wiki -> build/bdist.linux-x86_64/egg/xkcdpass/static
copying build/lib/xkcdpass/static/legacy -> build/bdist.linux-x86_64/egg/xkcdpass/static
copying build/lib/xkcdpass/static/spa-mich -> build/bdist.linux-x86_64/egg/xkcdpass/static
byte-compiling build/bdist.linux-x86_64/egg/xkcdpass/xkcd_password.py to xkcd_password.pyc
byte-compiling build/bdist.linux-x86_64/egg/xkcdpass/__init__.py to __init__.pyc
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying xkcdpass.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying xkcdpass.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying xkcdpass.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying xkcdpass.egg-info/entry_points.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying xkcdpass.egg-info/not-zip-safe -> build/bdist.linux-x86_64/egg/EGG-INFO
copying xkcdpass.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
creating dist
creating 'dist/xkcdpass-1.14.3-py2.7.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing xkcdpass-1.14.3-py2.7.egg
creating /usr/lib/python2.7/site-packages/xkcdpass-1.14.3-py2.7.egg
Extracting xkcdpass-1.14.3-py2.7.egg to /usr/lib/python2.7/site-packages
Adding xkcdpass 1.14.3 to easy-install.pth file
Installing xkcdpass script to /usr/bin

Installed /usr/lib/python2.7/site-packages/xkcdpass-1.14.3-py2.7.egg
Processing dependencies for xkcdpass==1.14.3
Finished processing dependencies for xkcdpass==1.14.3

Ora in esecuzione xkcdpass comando ti darà un insieme casuale di parole del dizionario come di seguito –

root@kerneltalks # xkcdpass
broadside unpadded osmosis statistic cosmetics lugged

Puoi usare queste parole come input per altri comandi come md5sum per ottenere la password casuale (come di seguito) oppure puoi anche utilizzare l'ennesima lettera di ogni parola per formare la tua password!

root@kerneltalks # xkcdpass |md5sum
45f2ec9b3ca980c7afbd100268c74819  -

root@kerneltalks # xkcdpass |md5sum
ad79546e8350744845c001d8836f2ff2  -

O anche tu puoi usare tutte quelle parole insieme come una password così lunga che è facile da ricordare per un utente e molto difficile da decifrare usando il programma del computer.

Esistono strumenti come Diceware, KeePassX, Revelation, PasswordMaker per Linux che possono essere presi in considerazione per creare password casuali complesse.


Linux
  1. 10 modi per analizzare i file binari su Linux

  2. 4 modi per generare una chiave precondivisa forte (PSK) in Linux

  3. Come generare/crittografare/decodificare password casuali in Linux

  4. Come gestire la password dell'account in Linux

  5. 3 modi per elencare gli utenti in Linux

Generazione di numeri casuali dal terminale Linux

3 modi per configurare un'interfaccia di rete in Linux

8 modi per generare una password casuale su Linux Shell

4 modi per creare un nuovo file in Linux

Semplici modi per generare una password casuale su Linux Shell

6 modi per generare una password sicura su Debian