Jak generować losowy ciąg w Bash

Jak generować losowy ciąg w Bash
Losowy ciąg reprezentuje serię alfanumerycznych znaków, które nie mają konkretnego wzoru. Chociaż nie ma absolutnego losowego ciągu, ponieważ ich generacja używa logiki matematycznej, losowe ciągi mogą być unikalne.

W tym samouczku przyjrzymy się różnym sposobom generowania losowych strun w Bash. Ta funkcjonalność może być przydatna podczas tworzenia nazw użytkowników, haseł lub danych z nasion.

Metoda 1: Hash MD5

Pierwszą metodą, której możemy użyć do wygenerowania losowego ciągu w Bash, są SumsKes MD5. Bash ma zmienną $ losową, która wytwarza liczbę losową. Możemy przekazać tę wartość do MD5Sum, aby uzyskać losowy ciąg.

Ilustrować:

Echo $ losowe | MD5Sum | głowa -C 20; Echo;
996E405CB0CDD2E10299

Zmienna $ losowa jest zawsze losowa. W rezultacie produkuje się suma kontrolna MD5.

Metoda 2: UUID

Możesz także użyć generatora jądra UUID w/proc/sys/jądro/random/uuid. To da ci unikalną wartość szesnastkową, którą możesz przekonwertować na losowy ciąg za pomocą polecenia SED i Head:

Na przykład:

cat/proc/sys/jądro/losowo/uuid | sed 's/[-] // g' | głowa -C 20; Echo;
C23174CE6FA149498FC7

Metoda 3: Pseudo urządzenia

Słyszałeś frazę: „Wszystko w Linux to plik.„Jedną z koncepcji, które sprawiają, że to stwierdzenie jest prawdziwe, jest możliwość wyrażania urządzeń jako plików.

Pliki znajdujące się w /Dev są znane jako pseudo urządzenia; Działają jak mosty między jądrem a sprzętem. Jednym z plików w tym katalogu jest plik Uradom.

Plik Urandom zapewnia interfejs, aby uzyskać dostęp do generatora liczb losowych jądra. Dlatego możemy go użyć do wygenerowania losowego ciągu, jak pokazano poniżej:

Cat /Dev /Urandom | tr -dc '[: alpha:]' | Fold -w $ 1: -20 | głowa -n 1
QGSWSBBUZUZTUEKXHIHU

Prowadzimy moc moczową do TR, która generuje wartości alfanumeryczne, a następnie składa wartości do szerokości do 20 znaków. Na koniec otrzymujemy jeden sznurek z głową -N.

Aby uzyskać wiele wartości jednocześnie, zmień wartość głowy -n na liczbę wymaganych linii.

Cat /Dev /Urandom | tr -dc '[: alpha:]' | Fold -w $ 1: -20 | głowa -n 5
PozxntvftnqqjZgjfWou
RAZPKKDCWIVZAXACRAMU
BldzwyuiYWZPFNMIMETL
CXVFKMAOGBEZYSLQZORO
Yoxtcglzxdnoezwmfa

Metoda 4: Base64

Możesz także użyć narzędzia Base64 do wygenerowania losowego ciągu. Na przykład, używając zmiennej $, możemy zrobić:

Echo $ losowe | Base64 | głowa -C 20; Echo
MTM2ODEK

Metoda 5: OpenSSL pseudo losowe bajty

Polecenie OpenSsl Rand umożliwia generowanie losowych bajtów na podstawie określonego typu. Te typy obejmują wartości Base63 i HEX.

Na przykład:

Openssl Rand -Hex 20
1DBA62137447861B2B2EB81E5886FA98D021007B

Lub użyj Base64 jako:

OpenSsl Rand -Base64 21
I05HHQAEJBZKERX/FTPTJH4XYUD

Wniosek

Na zakończenie Bash zapewnia różne narzędzia, których można użyć do generowania losowych ciągów. Dlatego wszystko, co musisz zrobić.