Oto rozbudowany poradnik prezentujący 8 sposobów generowania losowego hasła w terminalu Linux, z jasnymi instrukcjami krok po kroku, wyjaśnieniami działania oraz gotowymi przykładami poleceń.
1. Generator urandom + tr + head
Najprostsza metoda z użyciem narzędzi dostępnych na każdym Linuksie.
Instrukcja –
tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 16
Wyjaśnienie –
tr -dc 'A-Za-z0-9'
– filtruje strumień do znaków alfanumerycznych.< /dev/urandom
– źródło losowych bajtów.head -c 16
– zwraca 16 znaków, czyli mocne losowe hasło.
Możesz zmienić ilość znaków podając inną liczbę po -c
.
2. Narzędzie pwgen
Instalacja (jeśli nie masz) –
sudo apt install pwgen
Generowanie przykładowego hasła –
pwgen 16 1
Wyjaśnienie –
16
– długość hasła.1
– liczba haseł do wygenerowania.
Hasła z pwgen są losowe, często wymawialne (łatwiejsze do zapamiętania), ale można użyć opcji, by były trudniejsze do odgadnięcia.
3. Automatyczny generator haseł APG
Instalacja (w niektórych dystrybucjach apg jest domyślnie) –
sudo apt install apg
Podstawowe użycie –
apg -a 1 -m 16 -x 16 -M SNCL
Wyjaśnienie opcji –
-a 1
– tryb całkowicie losowy (nie wymawialne).-m 16 -x 16
– ustaw dokładnie 16 znaków długości.-M SNCL
– wymusza wykorzystanie małych (L
), dużych (C
) liter, cyfr (N
) i znaków specjalnych (S
).
4. Funkcja bash genpasswd
Możesz utworzyć własną funkcję do generowania hasła:
Dodaj do pliku ~/.bashrc
–
genpasswd() { local l=$1; [ "$l" == "" ] && l=16; tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs; }
Użycie –
source ~/.bashrc genpasswd 18
Wygeneruje 18-znakowe losowe hasło alfanumeryczne.
5. Funkcja bash randompass z macierzą znaków
Użycie własnej „macierzy” znaków:
Funkcja do pliku ~/.bashrc
–
randompass() { MATRIX="HpZld&xsG47f0)W^9gNa!)LR(TQjh&UwnvP(tD5eAzr6k@E&y(umB3^@!K^cbOCV)" PASS="" n=1; i=1 [ -z "$1" ] && length=8 || length=$1 [ -z "$2" ] && num=1 || num=$2 while [ ${i} -le $num ]; do while [ ${n} -le $length ]; do PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}" n=$(($n + 1)) done echo $PASS n=1; PASS=""; i=$(($i + 1)) done }
Użycie –
source ~/.bashrc randompass 20 3
Wygeneruje 3 losowe hasła po 20 znaków.
6. openssl rand
Kryptograficznie bezpieczne hasła (hex lub base64):
Użycie –
openssl rand -base64 16
To polecenie wygeneruje 16 bajtów zakodowanych jako base64, co daje ok. 22-24 znaki trudne do złamania.
Dla cyfr/liter –
openssl rand -hex 16
Dostajesz 32 znaki szesnastkowe.
7. Narzędzie date + sha256sum + base64 + head
Możliwy szybki trik bez instalacji niczego:
Instrukcja –
date +%s%N | sha256sum | base64 | head -c 20
- Bazuje na unikalnym czasie systemowym i funkcji skrótu.
- Nadaje się do generowania przyzwoitych jednorazowych haseł.
8. Narzędzie gpg jako generator losowych znaków
Użycie –
gpg --gen-random --armor 1 16
--gen-random 1 16
– 16 bajtów losowych o umiarkowanej jakości,--armor
zwraca je w base64.- Daje losowe, długie ciągi znaków idealne na hasła.
Podsumowanie – porównanie metod
Metoda | Wymaga instalacji | Możliwości | Bezpieczeństwo | Przykład polecenia |
---|---|---|---|---|
urandom + tr + head | Nie | Prosta | Wysokie | tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 16 |
pwgen | Tak | Wymawialne/losowe | Umiarkowane/wysokie | pwgen 16 1 |
apg | Tak/częściowo | Szerokie opcje | Wysokie | apg -a 1 -m 16 -x 16 -M SNCL |
Funkcja genpasswd | Nie | Skrypt do powłoki | Wysokie | genpasswd 18 |
Funkcja randompass | Nie/skrypt | Elastyczna | Wysokie | randompass 20 3 |
openssl rand | Nie | Bardzo silne | Bardzo wysokie | openssl rand -base64 16 |
date + sha256sum + base64 | Nie | Prosta | Umiarkowane | date +%s%N | sha256sum | base64 | head -c 20 |
gpg –gen-random | Tak | Bezpieczne | Bardzo wysokie | gpg --gen-random --armor 1 16 |
Każdą z omówionych metod możesz dopasować do własnych potrzeb – np. wydłużając hasło, zmieniając zestaw znaków czy automatyzując polecenie w skryptach.
Szczegółowe opisy i przełączniki możesz znaleźć w dokumentacji (man apg
, man pwgen
, man openssl
).