Bash: generare stringhe casuali
Una stringa casuale rappresenta una serie di caratteri alfanumerici senza uno schema particolare. Sebbene non esista una stringa casuale assoluta perché la loro generazione utilizza la logica matematica, le stringhe casuali possono essere uniche.
In questo tutorial, esamineremo vari modi in cui possiamo generare stringhe casuali in bash. Questa funzionalità può essere utile durante la creazione di nomi utente, password o dati seme.
Metodo 1: md5 Hash
Il primo metodo che possiamo usare per generare una stringa casuale in bash è il checksum md5. Bash ha la variabile $RANDOM, che produce un numero casuale. Possiamo reindirizzare questo valore a md5sum per ottenere una stringa casuale.
echo $RANDOM | md5sum | head -c 20; echo;
Metodo 2: UUID
Puoi anche usare il generatore di UUID del kernel in /proc/sys/kernel/random/uuid. Questo ti darà un valore esadecimale univoco che puoi convertire in una stringa casuale usando il comando sed e head:
cat /proc/sys/kernel/random/uuid | sed ‘s/[-]//g’ | head -c 20; echo;
Metodo 3: pseudo dispositivi
Hai sentito la frase “Tutto in Linux è un file”. Uno dei concetti che rendono vera questa affermazione è la capacità di esprimere i dispositivi come file.
I file che si trovano in /dev sono conosciuti come pseudo dispositivi; agiscono come ponti tra il kernel e l’hardware. Uno dei file in questa directory è il file uradom.
Il file urandom fornisce un’interfaccia per accedere al generatore di numeri casuali del kernel. Quindi, possiamo usarlo per generare una stringa casuale come illustrato di seguito:
cat /dev/urandom | tr -dc ‘[:alpha:]’ | fold -w ${1:-20} | head -n 1
Inviamo l’output di urandom a tr, che genera valori alfanumerici e quindi piega i valori alla larghezza di un massimo di 20 caratteri. Infine, otteniamo una stringa foderata con testa -n.
Per ottenere più valori contemporaneamente, cambia il valore di head -n al numero di righe richieste.
cat /dev/urandom | tr -dc ‘[:alpha:]’ | fold -w ${1:-20} | head -n 5
Metodo 4: Base64
È inoltre possibile utilizzare l’utilità base64 per generare una stringa casuale. Ad esempio, utilizzando la variabile $RANDOM, possiamo fare:
echo $RANDOM | base64 | head -c 20; echo
Metodo 5: OpenSSL pseudo-byte casuali
Il comando rand di OpenSSL consente di generare byte casuali in base al tipo specificato. Questi tipi includono valori base63 ed esadecimali.
Per esempio:
openssl rand -hex 20
Oppure usa base64 come:
openssl rand -base64 21
Articoli Correlati
sleep-script-bash
variabile-ambiente-bash
verificare-in-uno-script-bash-se-un-percorso-e-una-directory-o-altro
leggere-scrivere-file-python
ambienti-virtuali-python
bash-ciao-mondo
apple-swift-su-linux
g-gnu-compiler-collection
estensione-bash-brace
gnu-octave-software-analisi-numerica
tensorflow-apprendere-automaticamente
python-dash-crea-grafici
pandora-plugin-gimp-per-creare-panorami
webstorm-lide-javascript-piu-intelligente
software-per-compilazione
node-js-piattaforma-per-motore-javascript-v8
installare-pacchetti-in-sublime-text-con-package-control
kotlin-linguaggio-di-programmazione
Trovi questo tutorial utile? Condividi con i tuoi amici per tenerlo in vita.
Sii il primo a commentare, apprezzo i tuoi suggerimenti. Per ulteriori domande potete commentare qui sotto.
Fonte: https://linuxiano.altervista.org/2021/12/bash-generare-stringhe-casuali/
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.