====== Zufallswerte erzeugen ====== Zufallswerte kann man mit unterschiedlichen Kommandos erzeugen. ===== mit OpenSSL ===== man kann aber auch openssl dafür einsetzen: # openssl genrsa 2>/dev/null | egrep -v 'BEGIN RSA PRIVATE KEY-----|END RSA PRIVATE KEY-----|=' | tr -d '\n' | rev # openssl rand -base64 12 vwOmdi4MijmAlfgI ===== mit Betriebssystem-Mitteln ===== **dieses Kommando funktioniert auf Linux und FreeBSD, ohne das ein zusätzlich installiertes Programm benötigt wird:** > head -c 100 /dev/urandom | base64 | cut -b-12 OrEa05mRElqN Hier selektiere ich aus den Base64-Zeichen die Alphanumerischen Zeichen ('[:alnum:]') raus, weil es oft unpraktisch ist, wenn diese Zeichenkette beispielsweise ein "/" enthält. Will man diese Zeichenkette in Dateinamen verwenden, dann wäre das fatal. Mit diesem Kommando kann man auf FreeBSD und Linux eine Datei mit zufälligen sichtbaren Zeichen füllen, bis das Dateisystem komplett voll ist: > cat /dev/urandom | base64 > base64.txt > head -n3 base64.txt fL+3sHJxKP34gV9+xrg8MVnU+DWf2/nugz7u2lGw2letGX+1dWygoD/CJ3NfO4W9wwvj/X7rZ2cv OSUflcVT8+/waA4hddwn0bPRpc5PQjVUha+JA9YlJGbUT7iZIVqA734CE8Ay/d6D6jrA3827QsPe NKh8nIHu6s9Ffor/eAJVtiqzXgMazpsKYVdGCwEsxS6hSuMDd17C1ZzwegrnBYqwNRFrH/DA9R3o Mit diesem Kommando kann man auf FreeBSD und Linux in eine Datei 10000 Zeilen zufällige sichtbare Zeichen, mit 76 Zeichen pro Zeile, schreiben: > cat /dev/urandom | base64 | head -n 10000 > base64.txt > wc -l base64.txt 10000 base64.txt > head -n3 base64.txt fL+3sHJxKP34gV9+xrg8MVnU+DWf2/nugz7u2lGw2letGX+1dWygoD/CJ3NfO4W9wwvj/X7rZ2cv OSUflcVT8+/waA4hddwn0bPRpc5PQjVUha+JA9YlJGbUT7iZIVqA734CE8Ay/d6D6jrA3827QsPe NKh8nIHu6s9Ffor/eAJVtiqzXgMazpsKYVdGCwEsxS6hSuMDd17C1ZzwegrnBYqwNRFrH/DA9R3o ==== Zufallszahlen ==== eine achtstellige Zahl: # head -c 1000 /dev/urandom | tr -cd '[:digit:]' | cut -b-8 eine achtstellige Hexadezimalzahl: # head -c 1000 /dev/urandom | tr -cd '[:xdigit:]' | cut -b-8 acht Ziffern untereinander: # head -c 1000 /dev/urandom | tr -cd '[:digit:]' | cut -b-8 | sed 's/./&\n/g' vier zweistellige Zahlen untereinander: # head -c 1000 /dev/urandom | tr -cd '[:digit:]' | cut -b-8 | sed 's/../&\n/g' ==== Zufallsbuchstaben ==== ein acht Buchstaben langer Zufallswert: # head -c 1000 /dev/urandom | tr -cd '[:alpha:]' | cut -b-8 ==== Buchstaben und Zahlen ==== ein acht Zeichen langer Zufallswert, der nur aus Buchstaben und Zahlen bestehen kann: # head -c 1000 /dev/urandom | tr -cd '[:alnum:]' | cut -b-8 ==== alle sichtbaren Zeichen ==== ein acht Zeichen langer Zufallswert, der aus allen sichtbaren Zeichen bestehen kann: # head -c 1000 /dev/urandom | tr -cd '[:graph:]' | cut -b-8 ==== alle Zeichen aus dem Zeichenumfang von Base64 anzeigen ==== > head -c 1000000 /dev/urandom | base64 | cut -b-10000 | sed 's/./&\n/g' | sort | uniq | tr -d '\n'; echo +/0123456789=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz > head -c 1000000 /dev/urandom | base64 | cut -b-10000 | sed 's/./&\n/g' | sort | uniq | nl 1 + 2 / 3 0 4 1 5 2 6 3 7 4 8 5 9 6 10 7 11 8 12 9 13 = 14 A 15 B 16 C 17 D 18 E 19 F 20 G 21 H 22 I 23 J 24 K 25 L 26 M 27 N 28 O 29 P 30 Q 31 R 32 S 33 T 34 U 35 V 36 W 37 X 38 Y 39 Z 40 a 41 b 42 c 43 d 44 e 45 f 46 g 47 h 48 i 49 j 50 k 51 l 52 m 53 n 54 o 55 p 56 q 57 r 58 s 59 t 60 u 61 v 62 w 63 x 64 y 65 z