GNU/Linux >> Znalost Linux >  >> Linux

8 způsobů, jak vygenerovat náhodné heslo v Linuxu

Naučte se 8 různých způsobů generování náhodného hesla v Linuxu pomocí nativních příkazů Linuxu nebo nástrojů třetích stran.

V tomto článku vás provedeme různými způsoby generování náhodného hesla v terminálu Linux. Jen málo z nich používá nativní linuxové příkazy a jiní používají nástroje nebo nástroje třetích stran, které lze snadno nainstalovat na počítač se systémem Linux. Zde se podíváme na nativní příkazy jako openssl dd, md5sum , tr , urandom a nástroje třetích stran jako mkpasswd, randpw, pwgen, spw, gpg, xkcdpass, diceware, revelation, keepaasx, passwordmaker.

To jsou vlastně způsoby, jak získat nějaký náhodný alfanumerický řetězec, který lze použít jako heslo. Pro nové uživatele lze použít náhodná hesla, takže budou jedinečná bez ohledu na to, jak velká je vaše uživatelská základna. Bez dalšího zdržování se vrhneme na těchto 15 různých způsobů generování náhodného hesla v Linuxu.

Vygenerujte heslo pomocí nástroje mkpasswd

mkpasswd je dodáván s instalací expect balíček na systémech založených na RHEL. Na systémech založených na Debianu mkpasswd je dodáván s balíčkem whois . Pokus o instalaci mkpasswd balíček bude mít za následek chybu –

Není k dispozici žádný balíček mkpasswd. v systému RHEL a E:Nelze najít balíček mkpasswd v Debianu.

Nainstalujte tedy jejich nadřazené balíčky, jak je uvedeno výše, a můžete začít.

Spusťte mkpasswd získat hesla

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

root@kerneltalks# mkpasswd teststring << on Ubuntu
XnlrKxYOJ3vik

Příkaz se na různých systémech chová odlišně, takže podle toho pracujte. Existuje mnoho přepínačů, které lze použít k ovládání délky atd. parametrů. Můžete je prozkoumat z manuálových stránek.

Vygenerujte heslo pomocí OpenSSL

OpenSSL je dodáván s téměř všemi distribucemi Linuxu. Můžeme použít jeho náhodnou funkci k vygenerování alfanumerického řetězce, který lze použít jako heslo.

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

Zde používáme base64 kódování s náhodnou funkcí a poslední číslicí pro argument na base64 kódování.

Vygenerujte heslo pomocí urandom

Soubor zařízení /dev/urandom je dalším zdrojem získávání náhodných znaků. Používáme tr funkce a oříznutí výstupu, aby se náhodný řetězec použil jako heslo.

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

příkaz dd pro vygenerování hesla

Můžeme dokonce použít /dev/urandom device spolu s příkazem dd k získání řetězce náhodných znaků.

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

Potřebujeme předat výstup přes base64 kódování, aby bylo čitelné pro člověka. Můžete hrát s hodnotou počtu, abyste získali požadovanou délku. Pro mnohem čistší výstup přesměrujte std2 na /dev/null . Příkaz clean je –

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

Použití md5sum ke generování hesla

Dalším způsobem, jak získat pole náhodných znaků, které lze použít jako heslo, je vypočítat kontrolní součet MD5! Pokud víte, že hodnota kontrolního součtu skutečně vypadá jako náhodné znaky seskupené dohromady, můžeme ji použít jako heslo. Ujistěte se, že používáte zdroj jako nějakou proměnnou, abyste při každém spuštění příkazu získali jiný kontrolní součet. Například date ! příkaz date vždy způsobí změnu výstupu.

root@kerneltalks # date |md5sum
4d8ce5c42073c7e9ca4aeffd3d157102  -

Zde jsme prošli date výstup příkazu na md5sum a získejte hash kontrolního součtu! Pro získání požadované délky výstupu můžete použít příkaz cut.

Vygenerujte heslo pomocí pwgen

pwgen balíček je dodáván s repozitáři jako EPEL. pwgen se více zaměřuje na generování hesel, která jsou vyslovitelná, ale nejsou slovem ve slovníku nebo nejsou v jednoduché angličtině. Ve standardním distribučním repo ji možná nenajdete. Nainstalujte balíček a spusťte pwgen příkaz. Bum!

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

Zobrazí se vám seznam hesel na vašem terminálu! co ještě chceš? OK. Stále chcete prozkoumat, pwgen přichází s mnoha vlastními možnostmi, které lze odkazovat na manuálovou stránku.

Vygenerujte heslo pomocí nástroje gpg

GPG je OpenPGP šifrovací a podepisovací nástroj. Většinou je nástroj gpg předinstalovaný (alespoň na mém RHEL7). Ale pokud ne, můžete hledat gpg nebo gpg2 balíček a nainstalujte jej.

Pomocí níže uvedeného příkazu vygenerujte heslo z nástroje gpg.

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

Zde předáváme generování náhodného přepínače sekvence bajtů (--gen-random ) kvality 1 (první argument) s počtem 12 (druhý argument). Přepněte --armor zajišťuje výstup base64 zakódované.

Vygenerujte heslo pomocí xkcdpass

Slavný web geek humor xkcd zveřejnil velmi zajímavý příspěvek o zapamatovatelných, ale stále složitých heslech. Můžete si jej prohlédnout zde. Takže xkcdpass nástroj se inspiroval tímto příspěvkem a udělal svou práci! Je to balíček pythonu a je k dispozici na oficiálních webových stránkách pythonu zde

Všechny pokyny k instalaci a použití jsou uvedeny na této stránce. Zde jsou kroky instalace a výstupy z mého testovacího serveru RHEL pro vaši referenci.

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

Nyní běží xkcdpass příkaz vám poskytne náhodnou sadu slov ze slovníku, jak je uvedeno níže –

root@kerneltalks # xkcdpass
broadside unpadded osmosis statistic cosmetics lugged

Tato slova můžete použít jako vstup pro další příkazy, jako je md5sum získat náhodné heslo (jako níže) nebo můžete dokonce použít N-té písmeno každého slova k vytvoření hesla!

root@kerneltalks # xkcdpass |md5sum
45f2ec9b3ca980c7afbd100268c74819  -

root@kerneltalks # xkcdpass |md5sum
ad79546e8350744845c001d8836f2ff2  -

Nebo dokonce můžete všechna tato slova použít společně jako dlouhé heslo, které si uživatel snadno zapamatuje a pomocí počítačového programu je velmi těžké prolomit.

Existují nástroje jako Diceware, KeePassX, Revelation, PasswordMaker pro Linux, které lze zvážit pro vytváření silných náhodných hesel.


Linux
  1. 4 způsoby, jak vygenerovat silný předsdílený klíč (PSK) v Linuxu

  2. Jak generovat/šifrovat/dešifrovat náhodná hesla v Linuxu

  3. Jak spravovat heslo účtu v Linuxu

  1. 10 způsobů, jak analyzovat binární soubory na Linuxu

  2. 10 způsobů, jak vygenerovat náhodné heslo v Linuxu

  3. Jak vygenerovat náhodné heslo v linuxu pomocí /dev/random

  1. 3 způsoby, jak hrát videohry na Linuxu

  2. Výchozí heslo pro Kali Linux

  3. 3 způsoby, jak zobrazit seznam uživatelů v Linuxu